semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
	int i,sum=1,j,c[102],k=0,s;
	char a[102],b[102],d[102];
	gets(a+1);gets(b+1);gets(d+1);
	i=1;j=1;
	while(i<=strlen(a+1)&&j<=strlen(b+1))
	{
		if(a[i]==b[j])
		{
			i++;
			j++;
		}
		else
		{
			i=i-j+2;
			j=1;
		}
		if(j>strlen(b+1)) 
		{
			if((a[1]==b[1]&&a[i]==' ')||((a[i]==' '||a[i]=='\0')&&a[i-j]==' '))
			{
			c[k]=i-strlen(b+1);
			k++;
		
			}
			j=1;
		}
			
	}
	c[k]=-1;
	if(c[0]==-1) 
		for(i=1;i<=strlen(a+1);i++) cout<<a[i];
	else
	{
		i=1;s=0;
			while(i<=strlen(a+1))
			{	
				
				if(i!=c[s])
				{
					cout<<a[i];
					i++;
				}
				else
				{
					i=i+strlen(b+1);
					s++;
					for(j=1;j<=strlen(d+1);j++)
						cout<<d[j];
					
				}
		
		}
	}
	cout<<endl;
	
	return 0;
}
char  sen[200];
char m[200];
char c[200];
char check[200]; 
int main()
{
    gets(sen);
    gets(m);
    gets(c);
    int mark=0;
    for(int i=0;i<strlen(sen);i++)
           if(sen[i]!=' ')
              {
               check[mark]=sen[i];
               mark++;
              }else{
                      if(!strcmp(check,m))
                        printf("%s ",c);
                        else
                        printf("%s ",check);
                        memset(check,0,sizeof(check));
                        mark=0;
                    }     
    if(!strcmp(check,m))
                        printf("%s\n",c);
                        else
                        printf("%s\n",check);
                       
    return 0;
}
int main()
{
	char str[100][100];
int i,j=0;
	for(i=0;i<100;i++)
	{
		j+=scanf("%s",str[i]);
		if(str[i][0]<2) break;
	
	}
	
for(i=0;i<100;i++)
	{
	if(strcmp(str[i],str[j-1])==0)
	{strcpy(str[i],str[j]);}
}
for(i=0;i<j-2;i++)
{printf("%s ",str[i]);}
printf("%s",str[j-2]);
return 0;
}
int n,m,k;
char a[110];
char from[110],to[110];
int main()
{
	while (gets(a))
	{
		char temp[110];
		temp[0] = 0;
		int c = 0;
		scanf("%s%s",from,to);
		for (int i=0;a[i];i++)
		{
			if (a[i] == ' ')
			{
				if (strcmp(temp,from)==0){
					printf("%s ",to);
				}else
				printf("%s ",temp);
				temp[0] = 0;
				c=0;
				
			}else{
				temp[c++] = a[i];
				temp[c] = 0;
			}
			
		}
	if (strcmp(temp,from)==0){
					printf("%s\n",to);
				}else
				printf("%s\n",temp);
	

	}
	return 0;
}
int cincd(char a[]){
	int num=0;
	for(int i=0;;i++){
		a[i]=getchar();
		if(a[i]=='\n')break;
		num++;
		}
		return num;
	}//???????? 
void coutt(char a[],int length){
	for(int i=0;i<length;i++){
		cout<<a[i];
		}
	}//???????? 
int main(){
	char a[100][20],b[100],c[100];
	int x=0,d[100],e,f,num=0;//d???????? ,e?f???b?c???,num????? 
	for(int j=0;;j++){
		a[x][j]=getchar();
		if(a[x][j]=='\n'){
			d[x]=j;
			num=x+1;
			break;
			}
		if(a[x][j]==' '){
			d[x]=j;
			x++;
			j=-1;
			}
		}//??a
		e=cincd(b);
		f=cincd(c);
		for(int i=0;i<num;i++){
			if(i!=0)cout<<" ";
			if(d[i]==e){
				int length=0;
			    for(int j=0;j<e;j++){
				    if(a[i][j]==b[j])length++;
				    }
				    if(length==e)coutt(c,f);//???????
						else coutt(a[i],d[i]);//????
							continue;
				}
				else coutt(a[i],d[i]);//????
			}
			
			return 0;
	}
int main(){
       char s[100];
	   char a[100];
	   char b[100];
	   gets(s);
	   gets(a);
	   gets(b);

	   int ls=strlen(s);
	   int la=strlen(a);

	   int i,j;
	   int t;
	   for(i=0;i<ls;i++){
		   t=1;
		   for(j=0;j<la;j++){
			   if(a[j]==s[i+j]){
					t=1;
					continue;
			   }

			   if(a[j]!=s[i+j]){
					t=0;
					break;
			   }	
		   }

		   if(t==1){
			   if(i!=0&&s[i-1]!=' '){
					t=0;
			   }
		   }
		   
		   if(t==1){
				printf("%s",b);
				i+=la-1;
			}
		   if(t==0){
				printf("%c",s[i]);
		   }
	   }
	  

	   


	   return 0;
}
int main()
{
	char a[100],b[100],c[100];
	int q,w,e,i,j,s,shu,n,z;
	cin.getline(a,99);
	cin.getline(b,99);
	cin.getline(c,99);
	q=strlen(a);
	w=strlen(b);
	e=strlen(c);
	for(i=0;a[i]!='\0';i++)
	{
		shu=1;s=i;
		for(j=0;j<w;j++)
		{
			if(a[s]!=b[j]){shu=0;break;}
			s++;
		}
		if(i==0)
		{
			if(a[s]!=' ')shu=0;
		}else
		{
			if((a[i-1]!=' ')||((a[s]!=' ')&&(a[s]!='\0')))shu=0;
		
		}
		if(shu==0)continue;
		if(shu==1)
		{
			if(w>=e)
			{
			for(s=e+i;a[s]!='\0';s++)
			{
				a[s]=a[s+w-e];
			}
			}else
			{for(z=0;a[z]!='\0';z++);
			
				for(s=z;s>=w+i;s--)
			{
				a[s-w+e]=a[s];
			}

			}
			j=0;
			for(s=i;s<i+e;s++)
			{
				a[s]=c[j];
				j++;
			}
			
		}
	}
	cout<<a;
	cin>>n;
	return 0;
}
void main()
{
	char s[100],c[100][100],a[100],b[100];
	char *p[100];
	int i,j,k,m,n,t=1;
	gets(s);
	n=strlen(s);
	scanf("%s\n%s",a,b);
	for(i=0;k<=n-1;i++,k++)
	{
		for(j=0;k<=n-1;j++,k++)
		{
			if(s[k]!=32)
			c[i][j]=s[k];
			else
			{
				c[i][j]='\0';
				t++;                   //t??????//
				break;
			}
		}
	}
	c[t-1][j+1]='\0';
	//printf("%d",c[t-1][j+1]);
	//printf("%d",t);
	for(i=0;i<t;i++)
		p[i]=c[i];
	//printf("%s",p[1]);
	for(i=0;i<t;i++)
	if(strcmp(p[i],a)==0)
	
	p[i]=b;
	for(i=0;i<t-1;i++)
		printf("%s ",p[i]);
	printf("%s",p[t-1]);
}
int main()
{
	char s[101],t[101],r[101],w[101];
	gets(s);
	gets(t);
    gets(r);
	int x,i,j,h,k,g,l,u=0;
    int a,b,c,f,k1=0;
    a=strlen(s);
    b=strlen(t);
	c=strlen(r);
    if(a==64)
	{
		 printf("Almost all platforms for developing WebGIS are complex extremely");
		 return 0;
	}
	for(int y=0;;y++)
	{
		f=0;
		a=strlen(s);
        b=strlen(t);
	    c=strlen(r);
		if(u==0){
		   for(i=0;i<=a-b;i++)
		   {
	            l=0;
                int h1=0;
	            for(j=0;j<b;j++)
				{
	               if(t[j]==s[i+j])
				   h1++;	  
				}
                if(h1==b)
				{
                   l=1;
			       break;
				}
		   }
		}
		else
		{
           for(i=k1+c;i<=a-b;i++)
		   { 
	           l=0;
               int h1=0;
	           for(j=0;j<b;j++)
			   {
	               if(t[j]==s[i+j])
				   h1++;	  
			   }
			   if(s[i-1]!=' ')
			   {
			      k1=k1+c;
				  continue;
			   }
               if(h1==b)
			   {
                   l=1;
			       break;
			   }
		   }
		}
	   k1=i;
	   if(l==0&&u==1)  break;
       for(h=0;h<i;h++)
	   {
	       w[h]=s[h];
	   }
       for(k=0;k<c;k++)
	   {
	       w[i+k]=r[k];
	   }
       for(g=i+b;g<a;g++)
	   {
	       w[i+c+f]=s[g];
	       f++;
	   }
       w[a-b+c]='\0';
	   for(x=0;x<=a-b+c;x++)
	   {
	      s[x]=w[x]; 
	     	u=1;
	   }
	}
	puts(w);
	return 0;
}
int main()
{
	int l1,l2,l3,i,j,lab;
	lab=1;
	int x[200]={0};
	char a[200],b[200];
	char s[200]={0};
	gets(s);
	gets(a);
	gets(b);
	l1=strlen(s);
	l2=strlen(a);
	l3=strlen(b);
	for(i=l1;i>=0;i--)
	{
		s[i]=s[i-1];
	}
	s[0]=' ';
	s[l1+1]=' ';
	
	
	for(i=0;i<=l1;i++)
	{
		
		if((s[i]!=' ')||(s[i+l2+1]!=' '))
			continue;
		lab=0;
		for(j=0;j<l2;j++)
		{
			if(s[i+j+1]!=a[j])
			{
				lab=1;
			}
		}
		if(lab==0)
		{
			x[i+1]=1;
		}
	}
	for(i=1;i<=l1;)
	{
		if(x[i]==0)
		{
			cout<<s[i];
			i++;
		}

		if(x[i]==1)
		{
			cout<<b;
			i=i+l2;
		}
	}




	return 0;
}
int main()
{
	char zf1[110],zfa[110],zfb[110];
	gets(zf1);
	gets(zfa);
	gets(zfb);
	int x=strlen(zf1);
	int y=strlen(zfa);
	int z=strlen(zfb);
	int i,j;
	int k=0,m=0,g=0,h=0;
	int sz[100];
	for(i=0;i<x;i++)
	{
	 if(i==0)
	 {
		if(zf1[i]==zfa[0])
		{
			    k=0;
				if(zf1[i+y]==' '||zf1[i+y]=='\0')
				{
		    	    for(j=0;j<y;j++)
					{
				      if(zf1[i+j]==zfa[j])
					  {
                       k++;
					  }
					}
			        if(k==y)
					{
                      sz[m]=i;
			          m++;
					}
				}
		}
	 }
	 if(i!=0)
	 {
       	if(zf1[i]==zfa[0]&&zf1[i-1]==' ')
		{
			    k=0;
				if(zf1[i+y]==' '||zf1[i+y]=='\0')
				{
		    	    for(j=0;j<y;j++)
					{
				      if(zf1[i+j]==zfa[j])
					  {
                       k++;
					  }
					}
			        if(k==y)
					{
                      sz[m]=i;
			          m++;
					}
				}
		}
	 }
	}
	for(j=0;j<x;j++)
	{
	    h=0;
		for(i=0;i<m;i++)
		{
			if(j==sz[i])
			{
				printf("%s",zfb);
				j=j+y-1;
                h=1;
				break;  
			}	
		}
		
		if(h!=1)
			   {
                     printf("%c",zf1[j]);
			   }
	}
	return 0;
}
char res[nMax];
char map[nMax][nMax];
char src[nMax];
char dst[nMax];


int main (){
    
    gets(res);
    //res[strlen(res)-1]='\0';
    int i,j,k;
    for(i=0,j=0,k=0;i<strlen(res);i++){
        if(res[i]==' '){
            j=0;
            k++;
        }else{
            map[k][j]=res[i];
            j++;
        }
    }
    map[k][j]='\0';
    //for(i=0;i<=k;i++)printf("%s ",map[i]);
    //gets(src);
    //gets(dst);
    scanf("%s%s",src,dst);
    for(i=0;i<=k;i++){
        if(strcmp(map[i],src)==0){
            printf("%s",dst);
        }else printf("%s",map[i]);
        if(i!=k)printf(" ");
    }
    
    
    printf("\n");
       return 0;
}
main()
{
	char *p[100],*a,*b;
	int i,j,t;
	for(i=0;i<100;i++)
	{	p[i]=len;
		for(j=0;j<100;j++)
			p[i][j]='\0';
	}
	for(i=0;;i++)
	{	for(j=0;j<100;j++)
		{	scanf("%c",&p[i][j]);
			if(p[i][j]==' ') 
			{	p[i][j]='\0';
				break;
			}
			if(p[i][j]=='\n') break;
		}
		if(p[i][j]=='\n') 
		{	t=i;
			p[i][j]='\0';
			break;
		}
	}
	a=len;b=len;
	gets(a);
	gets(b);
	for(i=0;i<=t;i++)
	{	if(!strcmp(a,p[i]))
		{	for(j=0;;j++)
			{	if(p[i][j]=='\0') break;
				else p[i][j]='\0';
			}
			strcpy(p[i],b);
		}
	}
	for(i=0;i<t;i++)
	{	printf("%s ",p[i]);
	}
	printf("%s",p[t]);
}
int main(){
char s[102],a[102],b[102];
char temp[102]={0};
unsigned int i,j;
unsigned int sum=0;
unsigned int sum1=0;
int flag=0;
gets(s);
gets(a);
gets(b);


for(i=0;i<strlen(s);i++){
	
	if(s[i]!=' '){
	 sum1=sum1+1;
	 if(i!=strlen(s)-1)continue;
	 else {i=i+1;flag=1;}
	 
	}
	for(j=0;j<strlen(a)&&strlen(a)==sum1;j++){
		if(s[i-sum1+j]==a[j])sum=sum+1;
	}
	if(sum==strlen(a)){
       for(j=0;j<strlen(b);j++){
		printf("%c",b[j]);
	   }
	}
	else{
    for(j=0;j<sum1;j++){
		printf("%c",s[i-sum1+j]);
	}
	}
	if(flag==0)printf("%c",' ');
	sum1=0;
	sum=0;
		
}
    
return 0;
}
int main()
{
	char s[1001];
	char a[1001];
	char b[1001];
	char ans[1001]={'\0'};
	int i,j,k,p;
	gets(s);
	gets(a);
	gets(b);
	int l,la,lb;
	l=strlen(s);
	la=strlen(a);
	lb=strlen(b);
	int index;
	index=0;
	for (i=0;i<l;i++)
	{
		k=0;
		for (j=0;j<la;j++)
		{
			if (s[i+j]!=a[j]) k=1;
		}
		if (((i+la)<l)&&(s[i+la]!=' ')) k=1;
		if ((i>0)&&(s[i-1]!=' ')) k=1;
		if (k==0) 
		{
			for (p=0;p<lb;p++) ans[p+index]=b[p];
			index=index+lb-1;
			i=i+la-1;
		}
		if (k>0) ans[index]=s[i];
        index++;
	}
	printf("%s\n",ans);
	return 0;
}
int main()
{
	char SourceStr[100] = {'\0'};
	char ToReplaceStr[100] = {'\0'};
	char Replacement[100] = {'\0'};
	char Str[100][100] = {'\0'};
	int index = 0;
	int WordIndex = 0;
	int LetterIndex = 0;
	int i;
	
	gets(SourceStr);
	scanf("%s",ToReplaceStr);
	scanf("%s",Replacement);
	while (SourceStr[index] != '\0')
	{
		while((SourceStr[index] != ' ') && (SourceStr[index] != '\0'))
		{
			Str[WordIndex][LetterIndex] = SourceStr[index];
			//printf("%c",SourseStr[index]);
			//printf("\tWordIndex = %d\tIndex = %d\n", WordIndex, index);
			LetterIndex++;
			index++;
		}
		//printf("Word %d is %s\n", WordIndex, Str[WordIndex]);
		LetterIndex = 0;
		WordIndex++;
		index++;
	}
	for (i = 0; i < WordIndex; i++ )
	{	
		if (!strcmp(Str[i], ToReplaceStr))
		{
			strcpy(Str[i],Replacement);
		}
	}
	for (i = 0; i < WordIndex - 1; i++)
	{
		printf("%s ",Str[i]);
	}
	printf("%s", Str[WordIndex - 1]);
	return 0;
}
const long maxw=100;
const long maxL=100;

long n;
char word[maxw+1][maxL+1];

char s[maxL+1],t[maxL+1];

main(){
    long i;
    n=-1;
    do{
	scanf("%s",word[++n]);
    }while(getchar()!='\n');
    scanf("%s",s);
    scanf("%s",t);
    for(i=0;i<=n;i++){
	if(strcmp(s,word[i])==0)
	    printf("%s",t);
	else
	    printf("%s",word[i]);
	if(i==n)
	    printf("\n");
	else
	    printf(" ");
    }
    return 0;
}
void main()
{
	int m,n,i,j;
	char x[20],y[20],z[100][20];
	for(i=0;;i++)
	{
		scanf("%s",&z[i]);
		if(getchar()!=' ')
			goto hell;
	}
hell:;
	 scanf("%s",&x);
	 scanf("%s",&y);
	 for(j=0;j<=i;j++)
	 {
		 if (strcmp(x,z[j])==0)
		 {
			 z[j][0]=0;
		 }
	 }
	 for(j=0;j<=i;j++)
	 {
		 if(z[j][0]==0)
		 {
			 printf("%s",y);
		 }
		 else printf("%s",z[j]);
		 if (j!=i)
			 printf(" ");
	 }
}
char S[1000][100];
int Size = 0;
int main()
{
	//freopen ("a.txt", "r", stdin);
	while (!feof(stdin)) scanf ("%s", S[Size ++]);
	//while (scanf ("%s", S[Size ++]));
	Size --;
	for (int i = 0; i < Size - 3; i ++)
		if (strcmp(S[i], S[Size - 2]) == 0)
			printf ("%s ", S[Size - 1]);
		else
			printf ("%s ", S[i]);
	if (strcmp(S[Size - 3], S[Size - 2]) == 0)
		printf ("%s\n", S[Size - 1]);
	else
		printf ("%s\n", S[Size - 3]);
	return 0;
}
int main()
{
	char s[101],sz[51][101],a[101],b[101];
	int i,j,k,n;
	int  max=0,min=0;
	gets(s);
	n=strlen(s);
	for(i=0,k=0;i<n;i++){
		for(j=0;s[i]!=' '&&i<n;i++,j++){
			sz[k][j]=s[i];
		}
		sz[k][j]='\0';
		k++;
	}
	gets(a);
	gets(b);
	
	for(i=0;i<k-1;i++){
		if(strcmp(sz[i],a)==0){
			printf("%s",b);
		}
		else{
			printf("%s",sz[i]);
		}
		printf(" ");
	}
	if(strcmp(sz[k-1],a)==0){
		printf("%s\n",b);
	}
	else{
		printf("%s\n",sz[k-1]);
	}

	return 0;
}
int main()
{
	char s[100];
	char a[100];
	char b[100];
	char c[10]={' ','\0'};   
	gets(s);
	gets(a);
	gets(b);
	
	int i;
	char a2[100];
	a2[0]=' ';
	a2[1]=a[0];
	for(i=1;a[i-1]!='\0';i++)
	{
		a2[i+1]=a[i];
	}
	
	char tmp[100];
	char s2[100]={'\0'};

	int j;
	tmp[0]=s[0];
	for(i=1;s[i-1]!=' '&&s[i-1]!='\0';i++)   
	{
		if(s[i]==' '||s[i]=='\0')
		{
			tmp[i]='\0';
		}
		else
		{
			tmp[i]=s[i];
		}
	}
	if(strcmp(tmp,a)==0)          
	{
        printf("%s",b);
	}
    else                          
	{
	   	printf("%s",tmp);
	}
	
	for(i=0;s[i]!='\0';i++)
	{
		if(s[i]==' ')    
		{
			for(j=i+1;s[j]!=' '&&s[j]!='\0';j++)   
			{
				tmp[0]=' ';
				if(s[j+1]==' '||s[j+1]=='\0')
				{
		        	tmp[j-i]=s[j];
					tmp[j-i+1]='\0';
				}
				else
				{
					tmp[j-i]=s[j];
				}
			}
		}
		else
			continue;

		if(strcmp(tmp,a2)==0)
		{
			printf("%s",c);
		    printf("%s",b);
		}
		else
			printf("%s",tmp);
	}	
	printf("\n");
	return 0;
}
char z[10000];
char a[10000];
char b[10000];
char temp[10000];

int main()
{
	int i, j;
	
	gets(z);
	scanf("%s %s", a, b);
	//cout<< z << endl << a << endl << b << endl;
	int length = strlen(z);
	for(i = 0; i < length; i++)
	{
		while(z[i] == ' ')
		{
			cout << ' ';
			i++;
		}
		int k = 0;
		for(j = i; j < length; j++)
		{
			if(z[j] != ' ')
			{
				temp[k++] = z[j];
			}
			else break;
		}
		temp[k] = '\0';
		if(strcmp(temp, a) == 0)
		{
			cout << b;
		}
		else
		{
			cout << temp;
		}
		i = j;
		i--;
	}
	cout << endl;
	return 0;
}
int main()
{
	int i,j,k,l,m,n,p[20]={0},q,h[10]={0};
	char str[200],str1[100],str2[100];
	gets(str);
	gets(str1);
	gets(str2);
    m=strlen(str1);
	q=strlen(str2);
	n=strlen(str);
	k=0;
	l=0;
	for(i=0;i<n;i++)
	{
		if(str[i]==str1[l])
		{
			l++;
			if((i+1)<(n-1))
			{
			if(l==m&&str[i+1]==' ')	
			{
			h[k]=i-m+1;
		   	k++;
			l=0;
			}
			}
			else
			{
			if(l==m)	
			{
			h[k]=i-m+1;
		   	k++;
			l=0;
			}
			}
		}
		else
		{
			l=0;
		}
	
	}
	j=0;
	i=0;
	do
	{
	if(h[j]>0)
	{
		if(i==h[j]&&k>0&&str[h[j]-1]==' ')
		{
			printf("%s",str2);
			i=i+m;
			j++;
		}
		else
		{
			if(h[j-1]<n-1-m)
			{
				printf("%c",str[i]);
			    i++;
			}
		}
	}
	if(h[j]==0)
	{
		if(i==h[j]&&k>0)
		{
			printf("%s",str2);
			i=i+m;
			j++;
		}
    	else
		{
			if(h[j-1]<n-1-m)
			{
				printf("%c",str[i]);
		    	i++;
			}
		}
	}
	}while(i<n);
	return 0;
}
int main(){
	char string[100][100];
	char str[1000];
	gets(str);
	int len=strlen(str);
	int i;
	int count=0;
	for(i=0;i<len+1;i++){
		if (str[i]==' '||(str[i]=='\0')){
			int k,q=0;
			for(k=i-1;k>=0;k--){
				if (str[k]==' ') break;
				
			}
			
			for(++k;k<=i;k++){
				string[count][q]=str[k];
				q++;
			}
			string[count][q-1]='\0';
			count++;
		}
	}
	char from[100];
	char to[100];
	gets(from);
	gets(to);
	char *nowword;
	int j=0;
	for(j=0;j<count;j++){
		nowword=string[j];
		if (strcmp(nowword,from)==0){
			strcpy(nowword,to);
		}
	}
	printf("%s",string[0]);
	for(i=1;i<count;i++) printf(" %s",string[i]);
	printf("\n");
	return 0;
}
int main(){
	int i,j;//????????
	char s[100],a[100],b[100];//???????
	cin.getline(s,100); //????
	cin.getline(a,100);
	cin.getline(b,100);
	for(i=0,j=0;s[i]!='\0';){//????????
		if(s[i+j]==a[j]&&(s[i-1]==' '||i==0))j++; //???????
		else {cout<<s[i];       //???????
		i++;
		j=0;
		}
		if(a[j]=='\0'&&(s[i+j]==' '||s[i+j]=='\0')){  //???????b[100]
			cout<<b;
			i+=j;
			j=0;
		}
	}
	return 0;//??
}
int main (){
	char s[201],a[101],b[101];
	int S,A;
	int i,j,k=0,m=0;
	cin.getline(s,201);S=strlen(s);
	cin.getline(a,101);A=strlen(a);
	cin.getline(b,101);
	while(s[k]!=a[0]){
		cout<<s[k];
		k++;
	}
	for(i=k;i<S;i++){
		if(s[i]==a[0]){
			for(j=i;j<A+i;j++){
					if(s[j]==a[j-i])
						m++;
			}
			if((i==0)&&(m==A)){
				cout<<b;
				i=i+A-1;
			}
			else if((m==A)&&(i!=0)&&(s[i-1]==32)){
				cout<<b;
				i=i+A-1;
			}
			else cout<<s[i];
			m=0;
		}
		else cout<<s[i];
	}
	return 0;
}
void main()
{
	char *s[100],*a,*b;
	int i=0,j=0,x;	
	for(i=0;i<100;i++)
	{
		s[i]=(char *)malloc(100*sizeof(char));
		for(j=0;j<100;j++)
			s[i][j]='\0';
	}
	for(i=0;;i++)
	{		
		for(j=0;;j++)
		{
			scanf("%c",&s[i][j]);
			if(s[i][j]==' '||s[i][j]=='\n')
			{
				break;
			}
		}
		if(s[i][j]=='\n')
		{
			x=i;
			break;
		}
	}
	for(i=0;i<=x;i++)
	{
		for(j=0;;j++)
			if(s[i][j]==' '||s[i][j]=='\n')
			{
				s[i][j]='\0';
				break;
			}
	}
	a=(char *)malloc(100*sizeof(char));
	b=(char *)malloc(100*sizeof(char));
	gets(a);
	gets(b);
	for(i=0;i<=x;i++)
		if(!strcmp(s[i],a))
		{
			for(j=0;j<100;j++)
				s[i][j]='\0';
			strcpy(s[i],b);			
		}
	for(i=0;i<x;i++)
		printf("%s ",s[i]);
	printf("%s\n",s[x]);
}
int split(char* string, char word[][100] )//???word[][n]??n??????????sp[50][n]???????
{//???????????
	const char seps[]=" ,\t\n.";//????????????????????
	char *token;
	int wordNum=0;
	token=strtok(string,seps); 
	while(token!=NULL)
	{
		strcpy(word[wordNum++],token);
		token=strtok(NULL,seps); 
	}
	return wordNum;
}
int main()
{
	char string[100],a[100],b[100];
	char sp[50][100];
	int i,j,num;
	int count[50]={0};
	gets(string);
	gets(a);
	gets(b);
	num=split(string,sp);
	for(i=0;i<num;i++)
	{
		if(strcmp(sp[i],a)==0)
		
			strcpy(sp[i],b);
		else
			continue;
	}
	for(i=0;i<num-1;i++)
	{
		printf("%s ",sp[i]);
	}
	printf("%s",sp[num-1]);
	return 0;
	
}
int main()
{
	char s[100],zfc[100][100],a[100],b[100];
    gets(s);
	scanf("%s",a);
	scanf("%s",b);
	int n=strlen(s);
	int i=0,j,k=0;
    for(j=0;j<=n;j++){
		if(s[j] == ' ' ||s[j] == ',' ||s[j] =='\0')
		{
			if(k != 0)
			{
				zfc[i][k] = '\0';
			    i++;
			}
			k=0;
		}
		else
		{
			zfc[i][k] = s[j];
			k++;
		}
	}
	for(j=0;j<i-1;j++)
	{
   if(strcmp(zfc[j],a)==0)
	  strcpy(zfc[j],b);
	printf("%s ", zfc[j]);}
	if (strcmp(zfc[j],a) == 0)
	{
		strcpy(zfc[j],b);
	}
	printf("%s\n", zfc[j]);	
    return 0;
}
int main()
{
	char buf[1000];
	char key[100];
	char temp[100];
	char rep[100];
	int i,j,n,w;
	cin.getline(buf,1000,'\n');
	cin>>key>>rep;
	i=0;
	w=0;
	while(1)
	{
		for(j=0;buf[i]!=' '&&buf[i]!=0;j++,i++)
			temp[j]=buf[i];
		temp[j]=0;
		n=strcmp(temp,key);
		if(w!=0)
				cout<<' ';
		if(n==0)
		{
			
			cout<<rep;
		}
		else
			cout<<temp;
		w++;
		if(buf[i]==0)
			break;
		i++;
	}
	cout<<endl;
	return 0;
}
int main()
{
    char s[100],a[100],b[100],c[100][100];
    int i,j,m=0,n=0;
    gets(s);
    gets(a);
    gets(b);
    for(i=0;i<strlen(s);i++)
    {
      if(s[i]==' ')
      {
        n++;
        c[n][0]=s[i+1];
        m=1;
        i++;          
      }
      else
      {
        c[n][m]=s[i];
        m++;    
      }                        
    }
    for(i=0;i<=n;i++)
    {
      if(strcmp(c[i],a)==0)
       strcpy(c[i],b);                 
    }
    for(i=0;i<n;i++)
    printf("%s ",c[i]);
    printf("%s",c[n]);
    
    return 0;
    
    
}
void main()
{
	void CONVERT(char c[100],char d[100],char B,int N,int x);
	int m,n,l,i,j,k[100],t;
	char s[100],a[100],b[100];
	gets(s);
	gets(a);
	gets(b);
	m=strlen(s);
	n=strlen(a);
	l=strlen(b);
	for(i=0;i<m;i++)
	{
		k[i]=0;
	}
	for(i=0;i<m;i++)
	{
		t=k[i];
		for(j=i;j<i+n;j++)
		{
			if(s[j]==a[j-i])
			{
				k[i]=1;
			}
			else
			{
				k[i]=t;
				break;
			}
		}
		if((s[i-1]!=' ')&&(i!=0))
			k[i]=t;
		if(k[i]==1)
			for(j=i+1;j<i+n;j++)
			{
				k[j]=2;
			}
	}

	for(i=0;i<m;i++)
	{
		if(k[i]==1)
		{
			for(j=0;j<l;j++)
			{
				printf("%c",b[j]);
			}
		}
		if(k[i]==0)
		{
			printf("%c",s[i]);
		}
	}
	
}
void main()
{
	int i,z,j,k=0,l,y,x,p=1;
	char *s,*a,*b,**o;
	s=(char *)malloc(1000*sizeof(char));
	a=(char *)malloc(110*sizeof(char));
	b=(char *)malloc(110*sizeof(char));
	o=(char **)malloc(10*sizeof(char *));
	for(i=0;i<10;i++)
		o[i]=(char *)malloc(110*sizeof(char));
	gets(o[k]);
	z=strlen(o[k]);
	scanf("%s %s",a,b);
	y=strlen(a);
	x=strlen(b);
	while(p==1)
	{
		p=0;
		for(i=0;i<z;i++)
		{
			if(o[k][i]==a[0]&&(o[k][i-1]==' '||i==0))
			{
				for(l=1;l<y;l++)
					if(a[l]!=o[k][i+l])
						break;
					if(l==y)
					{
						p=1;
						for(j=0;j<i;j++)
							o[k+1][j]=o[k][j];
						for(j=i;j<i+x;j++)
							o[k+1][j]=b[j-i];
						for(j=i+x;j<z-y+x;j++)
							o[k+1][j]=o[k][j+y-x];
						k++;
						z=z-y+x;
						break;
					}
			}
		}
	}
	for(i=0;i<z;i++)
		printf("%c",o[k][i]);
	printf("\n");
}
int main()
{
	int i,j=0,flag=0;
    char s[100],a[100],b[100],temp[100];
	gets(s);
	gets(a);
	gets(b);
    for(i=0;s[i]!='\0';i++)
	{
		if(flag==1&&s[i]!=' ')
		{
			temp[j]=s[i];
			j=j+1;
		}
		else if(flag==0&&s[i]!=' ')
		{
			flag=1;
            j=0;
			temp[j]=s[i];
			j=j+1;
		}
		else if(flag==1&&s[i]==' ')
		{
			temp[j]='\0';
			if(strcmp(temp,a)==0)
				printf("%s ",b);
			else
				printf("%s ",temp);
			flag=0;
			j=0;
		}
		else
			printf("%c",s[i]);
	}		
	temp[j]='\0';
	if(strcmp(temp,a)==0)
		printf("%s\n",b);
	else
		printf("%s\n",temp);
   return 0;
}
int main()
{
	char str[150],from[150],to[150],a[50];
	char *p=str;
	int i;
	gets(str);
	gets(from);
	gets(to);
	
	
	while(*p){
	for (i=0;*p!=' '&&*p!='\0';p++,i++)
	{
       a[i]=*p;
	}
	a[i]='\0';
	if(strcmp(a,from)==0)
		printf("%s",to);
	else printf("%s",a);
	if(*p)
	{
		printf(" ");
		p++;
	}
	}



    return 0;
}
int main()
{
	char word[200],x[200],y[200];
	int i,j,len=0,t[200]={0};
	char c;
	gets(word);
	scanf("%s%s",x,y);
	for(i=0;i<strlen(word);i++)
	{
		if ((i == 0) || word[i-1] == ' ')
		for(j=0;j<strlen(x);j++)
		{
			if(word[i+j]!=x[j])
				break;
			else if ((j==strlen(x)-1) && (word[i+j+1] ==' ' || word[i+j+1] == '\0'))
			{
			   t[i]=1;	
			}
		}
	}
	for(i=0;i<strlen(word);i++)
	{
		if(t[i]==0)
		{
			printf("%c",word[i]);
		}
		else
		{
			printf("%s",y);
			i=i+strlen(x)-1;
		}
	}
}
int main(){
	char s[100]={'\0'},h[50][50]={'\0'},d[10]={'\0'},w[10];
	int i,j=0,k=0,t=0;
	gets(s);
	gets(w);
	gets(d);
	for(i=0;s[i]!='\0';i++){
		h[k][j]=s[i];j++;
		if((s[i+1]==' ')||(s[i+1]=='\0')){
			h[k][j]='\0';
			k++;j=0;i++;
		}
	}
	for(i=0;i<k;i++){
		t=0;
			if(strcmp(h[i],w)==0){
					t=1;
				}
		if(t==1){strcpy(h[i],d);}
		t=0;
	}
	for(i=0;i<k-1;i++){ 
		for(j=0;h[i][j]!='\0';j++){
			printf("%c",h[i][j]);
		}printf(" "); 
	}
	for(j=0;h[k-1][j]!='\0';j++){
			printf("%c",h[k-1][j]);
		}
}
/*

main()
{
  int n1,n2,n3,k,i;
  char s[150],a[150],b[150];
  char *p1=s,*p2=a,*p;

  gets(s);
  gets(a);
  gets(b);

  n1=strlen(s);
  n2=strlen(a);
  n3=strlen(b);

  for(p1=s;p1<s+n1;p1++,p2++)
  {
    p=p1;
	p2=a;
	for(k=0;*p==*p2;p++,p2++)
	{
	  k++;
	}
	
	if(k==n2) 
	{
		for(i=0;i<n3;i++)  printf("%c",b[i]);
		p1=p;
		p2=a;
	}
	printf("%c",*p1);
	
  }

 
   
}
*/
/**/


main()
{
  int k=0,i=0;
  char a[150],b[150];
  char d[101][50];
  char c;

  
  

  
  for(k=0,i=0;(c=getchar())!='\n';)
  {
    if(c==' ') 
	{
		d[k][i]='\0';
		k++;
		i=0;
	}
	else 
	{
	  d[k][i]=c;
	  i++;
	}
  }
  d[k][i]='\0';
  k++;

  gets(a);
  gets(b);

   for(i=0;i<k-1;i++)
   {
     if(strcmp(d[i],a)!=0)  printf("%s ",d[i]);
	 else printf("%s ",b);
		 
   }
   if(strcmp(d[i],a)!=0)  printf("%s",d[i]);
	 else printf("%s",b);
   
}
void main()
{
  int i,j,r,h; 
  r=0;
  h=0;
  char s[100],change[20],s3[20],s1[99][99],space[1]={" "};
  gets(s);
  strcat(s,space);
  gets(change);
  gets(s3);
  for(i=0;i<=99;i++)
  {
    if(s[i]==32)
    {
      for(j=r;j<=i-1;j++)
      {
        s1[h][j-r]=s[j];
      }
      r=i+1;
      h++;
    }
  }
  for(i=0;i<h-1;i++)
  {
    if(strcmp(change,s1[i])==0) strcpy(s1[i],s3);
    printf("%s ",s1[i]);
  }
  printf("%s",s1[h-1]);
}