semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
	int i,j,ls,la,p,f;
	char s[201],a[101],b[101];

	gets(s);
	ls=strlen(s);
	gets(a);
	la=strlen(a);
	gets(b);

	s[ls]=' ';
	s[ls+1]='\0';

	i=-1;
    while (i<ls)
    {
		i++;
		p=i;
		while (s[i]!=' ')
			i++;
        if (i-p!=la)
		{
			for (j=p;j<i;j++)
				printf("%c",s[j]);
			if (i!=ls) printf(" ");
			else 
			{
				printf("\n");
				break;
			}
		}
		else 
		{
			f=1;
			for (j=0;j<la;j++)
				if (s[p+j]!=a[j])
				{
					f=0;
					break;
				}
				if (f==1)
				{
					printf("%s",b);
					if (i!=ls) printf(" ");
			       else 
			{
				printf("\n");
				break;
			}
				}

			else
			{
			for (j=p;j<i;j++)
				printf("%c",s[j]);
			if (i!=ls) printf(" ");
			else {
				printf("\n");
				break;
			}
			}
			}
		};
	
	return 0;
}
int main(){
    char s[101],a[101],b[101];
    gets(s);
    gets(a);
    gets(b);
    char sub[101][101];
    int len=strlen(s);
    int m=0,n=0;
    for(int i=0;i<len;i++){
            if(s[i]!=' '){
                       sub[m][n]=s[i];
                       n++;
            }
            if(s[i]==' '){
                       m++;
                       n=0;
            }
    }
    for(int j=0;j<=m;j++){
            if(strcmp(sub[j],a)==0){
                      if(j==0){
                               printf("%s",b);
                      }
                      if(j!=0){
                               printf(" %s",b);
                      }
            }
            else{
                      if(j==0){
                               printf("%s",sub[j]);
                      }
                      if(j!=0){
                               printf(" %s",sub[j]);
                      }
            }
    }
	return 0;
}
void main()
{
	int n,i=0;
	char (*s)[100],*a,*b;
    s=(char (*)[100])malloc(100*100*sizeof(char));
    a=(char *)malloc(100*sizeof(char));
    b=(char *)malloc(100*sizeof(char));
    while(scanf("%s",*(s+i))!=EOF)
    {i++;}
    n=i;
    strcpy(a,*(s+n-2));
    strcpy(b,*(s+n-1));
    for(i=0;i<n-2;i++)
    {
        if (strcmp(a,*(s+i))==0)
        {strcpy(*(s+i),b);}
    }
    for (i=0;i<n-3;i++)
    {printf("%s ",*(s+i));}
    printf("%s",*(s+n-3));
}
main()
{
	char a[100]={0},b[100][100]={0},c[100]={0},d[100]={0};
	int i,j,m=0,n=1,k=0;
	gets(a);
	gets(c);
	gets(d);
	m=strlen(a);
	for(j=0;j<=m-1;j++)
		if(a[j]==32)
			n++;
	for(j=0;j<=n-1;j++)
	{
		for(i=0;a[k]!=32;i++)
		{
			b[j][i]=a[k];
			k++;
		}
		if(a[k]==32)
			k++;
	}
	for(j=0;j<=n-1;j++)
	{
		if(j)
			printf(" ");
		if(strcmp(b[j],c)==0)
			printf("%s",d);
		else
			printf("%s",b[j]);
	}
	printf("\n");
}
void main()
{
	char *p,*q;
	int k,m=0;
	char *s,*a,*b;
	s=(char*)malloc(100*sizeof(char));
	a=(char*)malloc(100*sizeof(char));
	b=(char*)malloc(100*sizeof(char));
	gets(s);
	scanf("%s %s",a,b);

	k=strlen(a);
	p=s;q=a;
	//printf("%c ",*q);

	while(*p!='\0')
	{
		//printf(" %d ",m);
		if(m==k)
		{
			if(*p==' '||*p=='\0')
			{
				printf("%s",b);
				m=0;q=a;
			}
			else
			{
				printf("%s",a);
				m=0;q=a;
			}
		}
		//printf("%c-%c ",*p,*q);

		if(*p==*q)
		{
			m++;
			if(m==1)
			{
				if(p==s)
				{
					p++;q++;
				}
				else 
				{
					p--;
					if(*p==' ')
					{
						p=p+2;q++;
					}
				    else
					{
					m=0;q=a;p++;
					printf("%c",*p);
					p++;
					}
				}
			}
			else
			{
				p++;q++;
			}
		}
		else
		{
			p=p-m;
			printf("%c",*p);
			m=0;q=a;
			p++;
		}
	}
	if(m==k)
		printf("%s",b);
}
void main()
{
	char str1[100],str2[100],str3[100],str4[100][100],*p;
	gets(str1);
	gets(str2);
	gets(str3);
	p=str1;
	int i,j=0,k=0,n;
	n=strlen(str1);
	for(i=0;i<=n;i++)
	{
		if((*(p+i)!=' ')&&(*(p+i)!='\0'))
		{
			str4[k][j]=str1[i];
			j=j+1;
		}
		else
		{
			str4[k][j]='\0';
			j=0;
			k=k+1;
		}
	}
	for(i=0;i<k;i++)
	{
		if(strcmp(str4[i],str2)==0)
		{
			
			strcpy(str4[i],str3);
		}
	}
	for(i=0;i<k-1;i++)
	printf("%s ",str4[i]);
	printf("%s\n",str4[k-1]);
}
int main()
{
    char word[100][100]={'\0'},c='\0',alter[100]={'\0'},alter0[100]={'\0'};
    int i=0,j=0,sum;
    while(c!='\n')
    {
        c=getchar();
        while(c!=' '&&c!='\n')      //?????????????
        {
            word[i][j]=c;
            c=getchar();
            j++;
        }
        i++;
        j=0;
    }
    sum=i;
    cin.getline(alter0,100,'\n');           //??????
    cin.getline(alter,100,'\n');
    for(i=0;i<sum;i++)
    {
        j=0;
        while(alter0[j]==word[i][j]&&j<=99)     //???????
        {
            j++;
        }
        if(j==100)
        {
            for(j=0;j<100;j++)
            {
                word[i][j]=alter[j];
            }
        }
    }
    for(i=0;i<sum-1;i++)                      //??
    {
        cout<<word[i]<<' ';
    }
    cout<<word[sum-1];
    return 0;
}
int main()
{
	char s[120],s0[120];
	char a[20],b[20];
	int k=1,ls;
	cin.getline(s,100,'\n');
	cin>>a>>b;
	for(int i=0;i<strlen(s)-strlen(a)+1;i++){
		ls=strlen(s);
		if(s[i]==a[0]&&(s[i+strlen(a)]==32||s[strlen(a)+i]=='\0')&&(i==0||s[i-1]==32)){
		for(int j=1;j<strlen(a);j++)
			if(s[i+j]!=a[j]){
				k=0;continue;}}
		else k=0;
		if(k==1){
			for(int g=0;g<i;g++)
				s0[g]=s[g];
			for(int n=i+strlen(a);n<strlen(s);n++)
				s0[n-strlen(a)+strlen(b)]=s[n];
			for(int m=0;m<strlen(b);m++)
				s0[i+m]=b[m];
			for(int c=0;c<ls-strlen(a)+strlen(b);c++)
				s[c]=s0[c];
			s[ls-strlen(a)+strlen(b)]='\0';
		    i+=strlen(b)-1;}
	    k=1;}
	cout<<s<<endl;
	return 0;
}
int main() {
	char str[110];
	char a[110];
	char b[110];
	char out[2000];
	char tmp[110];
	int index = 0;
	int out_i = 0;
	int len;
	int len_a;
	int len_b;

	memset(out, 0, sizeof(out));
	memset(a, 0, sizeof(a));
	memset(b, 0, sizeof(b));

	gets(str);
	len = strlen(str);

	cin >> a >> b;
	len_a = strlen(a);
	len_b = strlen(b);

	for (int i=0; i<len; i++) {
		if (str[i] != ' ') {
			tmp[index++] = str[i];
		}
		else if (str[i] == ' '){
			tmp[index++] = '\0';
			if (!strcmp(tmp, a)) {
				for (int j=0; j<len_b; j++) {
					out[out_i++] = b[j];
				}
				
			}
			else {
				for (int j=0; j<strlen(tmp); j++) {
					out[out_i++] = tmp[j];
				}
			}
			out[out_i++] = ' ';
			memset(tmp, 0, sizeof(tmp));
			index = 0;
		}
	
		if (i == len-1) {
			tmp[index++] = '\0';
			if (!strcmp(tmp, a)) {
				for (int j=0; j<len_b; j++) {
					out[out_i++] = b[j];
				}
				
			}
			else {
				for (int j=0; j<strlen(tmp); j++) {
					out[out_i++] = tmp[j];
				}
			}
			//out[out_i++] = ' ';
			memset(tmp, 0, sizeof(tmp));
			index = 0;
		}
	}

	cout << out << endl;
	
}
int main()
{
    int i,j,k,l,l1,l2;	
	char s[200],a[101],b[101];
	cin.getline(s,200);
	cin.getline(a,101);
	cin.getline(b,101);
    l=strlen(s);
	l1=strlen(a);
	l2=strlen(b);
	for(i=l;i>=0;i--)
		s[i+1]=s[i];
	s[0]=' ';
	l+=1;
	for(i=0;i<=l+1;i++)
	{
		if(s[i]==' ')
		{
			for(j=i+1;j<=i+l1;j++)
			{
				if(s[j]!=a[j-i-1]) break;
		        else
				{
		           if(j==i+l1&&(s[i+l1+1]==' '||s[i+l1+1]=='\0'))
				   {
					   if(l2>=l1)
					   {
						   l+=l2-l1;
						   for(k=l-l2+l1;k>=i+l1+1;k--)
							   s[k+l2-l1]=s[k];
						   for(k=i;k<=i+l2-1;k++)
							   s[k+1]=b[k-i];
					   }
					   if(l2<l1)
					   {
						   for(k=i+l1+1;k<=l+2;k++)
							   s[k+l2-l1]=s[k];
						   for(k=i;k<=i+l2-1;k++)
						       s[k+1]=b[k-i];
					   }
				   }
				}
			}
		}
	}
	for(i=1;i<=l;i++)
		s[i-1]=s[i];
	cout<<s<<endl;
	return 0;
}
int main()
{
	char a[300],b[100],c[100],d[100][20]={0};//????
	int i,j=0,k=0,l;
	cin.getline(a,300);//??????
	cin.getline(b,100);//????????
	cin.getline(c,100);//????????
	l=strlen(a);
	for(i=0;i<l;i++)
	{
		d[j][k]=a[i];
		k=k+1;
		if(a[i+1]==' '||i==l-1)
		{
			j=j+1,k=0,i=i+1;
		}
	}//?a?????????d[j]
	for(i=0;i<j;i++)
		if(strcmp(d[i],b)==0)strcpy(d[i],c);//??d????
	cout<<d[0];
	for(i=1;i<j;i++)
		cout<<" "<<d[i];//??
	return 0;
}
int main()
{
    char s[202],a[202],b[202],ch[202];
    gets(s);
    gets(a);
    gets(b);
    int k=0;
    for(int j=0;j<strlen(s);++j)
    {
        if(s[j]!=' ')
        {
            ch[k]=s[j];
            ++k;
        }
        else
        {
            ch[k]='\0';
            if(!strcmp(ch,a))
                cout<<b<<" ";
            else
                cout<<ch<<" ";
            memset(ch,0,sizeof(char)*k);
            k=0;
        }
        if(j==strlen(s)-1)
        {
            if(!strcmp(ch,a))
                cout<<b<<endl;
            else
                cout<<ch<<endl;
        }
    }
    return 0;
}
int main()
{
 char word[50][20];
 char s[100],a[100],b[100],e[100];
 int i=0,j=0,k=0;
 gets(s);
 while (1)
 {
  if (s[i]!=' '&&s[i]!='\0')
  {
   e[j]=s[i];
   j++;
  }
  else if(s[i]==' ')
  {
   e[j] = '\0';
   strcpy(word[k],e);
   j=0;
   k++;
  }
   else if(s[i]=='\0')
  {
   e[j] = '\0';
   strcpy(word[k],e);
   break;
  }
  i++;
 }
	gets(a);
	gets(b);
	for(i=0;i<=k;i++)
	{
		if (strcmp(a,word[i])==0)
			strcpy(word[i],b);
	}
	for(i=0;i<k;i++)
		printf("%s ",word[i]);
	printf("%s",word[k]);
	return 0;
}
/*
 * 1000012761_303.cpp
 *
 *  Created on: 2010-11-5
 *      Author: 378073652
 */

int main(){
	char a[100],b[100],c[100],d[10000];
	int i=0,j=0,k,la,lb,lc,s=0;
	gets(a);
	gets(b);
	gets(c);
	la=strlen(a);
	lb=strlen(b);
	lc=strlen(c);
	for(i=0;i<la;i++){
		for(k=0,s=0;k<lb;k++){
			if(a[i]==b[k])s=s+1;
			i=i+1;}


		   if((a[i-k-1]==' ')&&(s==lb)||((i-k==0)&&(s==lb)))   {i=i-1;for(k=0;k<lc;k=k+1) {d[j]=c[k]  ;j=j+1;} }
		    else {i=i-k; d[j]=a[i];j=j+1;}



		}
	cout<<d;
	}
char * MoveNext(char *p) 
 { 
	 while(isalpha(*p)&&*p) p++; 
	 while(!isalpha(*p)&&*p) p++;  
	 return p; 
 }  
  
 int StrWords(char *p) 
 {
	 int num=0; 
	 while(*p!='\0') 
		 if(*p==' ') p++; 
		 else  
		 {
			 num++; 
			 for(;*p!=' '&&*p!='\0';p++); 

		 }  
		 return num; 
 }  
  
 int CheckSame(char *s1,char *s2) 
 { 
	 char str[N],*p=str; 
	 while(isalpha(*s2)) 
		 *p++=*s2++; 
	 *p='\0';  
	 if(strcmp(s1,str)==0) return 1; 
	 else return 0; 
 }  
 void SwapWord(char *p2,char *p1,char *s)  
 { 
	 char *p,*t1,*t2,*t=s;  

	 int Dis,loop,k,len,tag,flag;  

	 Dis=strlen(p2)-strlen(p1); 
	 if(Dis<0) 
	 { 
		 tag=-1; Dis*=-1; 
	 }  
	 else if(Dis>0) 
		 tag=1; 
	 else 
		 tag=0;  
	 loop=StrWords(t);  
	 while(loop--) 
	 { 
		 if(CheckSame(p1,t))  
		 { 
			 switch(tag) 
			 { 
			 case -1: p=t; 
				 while(isalpha(*p)) *p++=' '; 
				 p=t; 
				 while(*p++) 
					 *(p-Dis)=*p; break; 
			 case 1: len=strlen(t); 
				 p=t+len;  
				 for(k=0;k<strlen(t);k++) 
					 *(p+Dis)=*p--; break; 
			 default: break;  
			 }  
			 p=t; t2=p2; 
			 while(*t2) 
				 *p++=*t2++; 
			 while(!isalpha(*p)) p++; 
		 } 
		 else t=MoveNext(t);  
	 } 
 } 
  


 
 int main() 
 { 
	 char sen[M],w1[N],w2[N]; 
     gets(sen); 
     gets(w1); 
     gets(w2); 
     SwapWord(w2,w1,sen); 
     puts(sen); 
     
     return 0; 
 }
int main(){
	char zf[600],dc[30][30],y[30],h[30];
	gets(zf);
	gets(y);
	gets(h);
	int n=strlen(zf),a=0,b=0;
    for(int i=0;i<n+1;i++){
		if(zf[i]!=' '&&zf[i]!='\n'){
			dc[a][b]=zf[i];
			b++;
		}else{
			dc[a][b]='\0';
			a++;
			b=0;
		}
	}
	for(int k=0;k<a+1;k++){
		if(strcmp(dc[k],y)==0){
			strcpy(dc[k],h);
		}
	}
	printf("%s",dc[0]);
	for(int m=1;m<a+1;m++){
		printf(" %s",dc[m]);
	}
	return 0;
}
int main()
{
	int i=0,j=0,n,t[100],at,bt,p;
	char s[100][100],a[100],b[100];
	for(i=0;i<100;i++)
	{
		
		for(j=0;j<100;j++)
		{
			s[i][j]=cin.get();
			if(s[i][j]==' ')
			{
				t[i]=j;
				break;
			}
			else
				if(s[i][j]=='\n')
				{
					t[i]=j;
					goto loop;
				}
		}
	}
loop: n=i+1;
	for(j=0;j<100;j++)
	{
		a[j]=cin.get();
		if(a[j]=='\n')
		{
			at=j;
			break;
		}
	}
	for(j=0;j<100;j++)
	{
		b[j]=cin.get();
		if(b[j]=='\n')
		{
			bt=j;
			break;
		}
	}
	for(i=0;i<n;i++)
		if(t[i]==at)
		{
			p=1;
			for(j=0;j<at-1;j++)
			{
				p*=s[i][j]-a[j]+1;
			}
				if(p==1)
				{
					for(j=0;j<bt;j++)
						s[i][j]=b[j];
					t[i]=bt;
				}
		}
	for(i=0;i<n;i++)
	{
		if(i==0)
			for(j=0;j<t[i];j++)
				cout<<s[i][j];
		else
		{
			cout<<" ";
			for(j=0;j<t[i];j++)
				cout<<s[i][j];
		}
	}
	cout<<endl;
	return 0;
}
void main()
{
	int i,j=0,k=0;
	char str[101],str1[101],str2[101],str3[101][101];
	gets(str);
	gets(str1);
	gets(str2);
	for(i=0;i<strlen(str);i++)
	{
		if(str[i]!=' ') {str3[k][j]=str[i];j++;}
		else {str3[k][j]='\0';k++;j=0;}
	}
	str3[k][j]='\0';
	for(i=0;i<=k;i++)
	{
		if(strcmp(str3[i],str1)==0)
		{if(i==0) printf("%s",str2);
		else printf(" %s",str2);
		}
		else {if(i==0) printf("%s",str3[i]);
		else printf(" %s",str3[i]);}
	}
}
int main()
{
 char str1[100],word1[100],word2[100];
 int n=0;
 int i,j;
 gets(str1);
 scanf("%s %s",word1,word2);
 for(i=0;i<(int)(strlen(str1));i++){
  for(j=i;j<i+(int)(strlen(word1));j++){
  if(str1[j]!=word1[j-i])  break;
  n=n+1;}
  if(i==0&&n==(int)(strlen(word1))){
	  printf("%s ",word2);
	  i=i+(int)(strlen(word1));}
  else if(n==(int)(strlen(word1))&&(str1[i+n]==32||str1[i+n]=='\0')&&str1[i-1]==32){
  printf("%s ",word2);
  i=i+(int)(strlen(word1));}
  else printf("%c",str1[i]);
 n=0;}
return 0;
}
int main()
{
	char s1[100],s2[100],s3[100],p[100];
	gets(s1);
	gets(s2);
	gets(s3);
	strcat(s1," ");
	int len,i,j,n=0,y;
	len=strlen(s1);
	for(i=0;i<len;i++){
		if(s1[i]==' ')
			n++;
	}
	int t=0;
	for(y=0;y<n;y++){
	   for(i=t,j=0;i<len;i++,j++){
		  if(s1[i]!=' '){
			 p[j]=s1[i];
		  }
		  else{
			   p[j]='\0';
			   t=i+1;
			   break;
		  }
	   }
	   if(strcmp(p,s2)==0){
		   strcpy(p,s3);
	   }
	   printf("%s",p);
	   if(y<n-1)
		   printf(" ");
	
	}
	
}
char s[1000];
char a[101];
char b[101];
char buf[101];

int main(){
	unsigned int i;
	int index;
	gets(s);
	scanf("%s",a);
	scanf("%s",b);
	index=0;
	for(i=0;i<strlen(s);i++){		
		if(s[i]==' ' || (i==strlen(s)-1)){
			if(i==strlen(s)-1)
				buf[index++]=s[i];
			buf[index]='\0';
			index=0;
			if(!strcmp(buf,a)){
				printf("%s",b);
			}
			else{
				printf("%s",buf);
			}
			if(i!=strlen(s)-1){
				printf(" ");
			}
		}
		else{
			buf[index++]=s[i];
		}
	}	
	return 0;
}
int main()
{  
	int i,j,s,k,l,m,n,v=0;
	char a[202],b[102],c[102];
    cin.getline(a,202);
	cin.getline(b,102);
	cin.getline(c,102);
	l=strlen(c);
	m=strlen(a);
	n=strlen(b);
	for(j=0;j<m;)
	{
		k=0;
		if((j==0)||((j>0)&&(a[j-1]==' ')))
	    {
			for(i=j;i<j+n;i++)
			if(a[i]==b[i-j])
			k++; 
			if((k==n)&&(a[j+n]!=' ')&&(a[j+n]!='\0'))
				k=0;
		}                             //???????????????
		
		if   (k==n)
		{
			if(l>n)
				for(s=0;s<l-n;s++)
				for(i=m+s;i>=j+n+s;i--)
					a[i+1]=a[i];     //???????????????l-n??
			if(l<n)
			{
				for(s=0;s<n-l;s++)
				for(i=j+n-s-1;i<m-s;i++)
					a[i]=a[i+1];
				for(i=m+l-n;i<m;i++)
					a[i]='\0';
			}
			for(i=j;i<j+l;i++)
			a[i]=c[i-j];  
			j+=l;                  //??????
			m=m+l-n;
		}	
		else j++;
	}
	for(i=0;i<m;i++)
cout<<a[i];
	cout<<endl;
return 0;
}
int main()
{
   int a,i,j=0;
   char s[101]={0},c[101],d[101];
   gets(s);
   gets(c);
   gets(d);
   a=strlen(s);
   for(i=0;i<a;i++)
      {
        char b[101]={0};
        while(s[i]!=' '&&i<a)
             {
                b[j]=s[i];
                j++;
                i++;
              }
        if(strcmp(b,c)==0)
          {
             printf("%s",d);
           }
        else
          {
             printf("%s",b);
           }
        if(i<a)
           {
              printf(" ");
           }
        j=0;
        }
    return 0;
}
int main(){
char a[100][100];
	char b[100],c[100],d;
	int i,n;
	for(i=0;;i++){
		scanf("%s",a[i]);
		scanf("%c",&d);
		if(d==10){
			break;
		}
	}
	scanf("%s",b);
	scanf("%s",c);
	for(n=0;n<i+1;n++){
		if(strcmp(a[n],b)==0){
		strcpy(a[n],c);	
			}
	}
	
	for(n=0;n<i;n++){
		printf("%s ",a[n]);
	}
	printf("%s",a[i]);
	return 0;
}
void main()
{
	int j,m,n,o,a;
	char *i,*k;
	char c1[200],c2[100],c3[100];
	char *p=c1,*q=c2,*r=c3;
	gets (p);
	gets (q);
	gets (r);
	n=strlen(p);
	m=strlen(q);
	a=strlen(r);
	for (i=p;i<=p+n-1;i++)
	{
		if ((*i==*q)&&((i==p)||*(i-1)==' '))
		{
			o=0;
			for (j=0;j<=m-1;j++)
			{
				if (*(i+j)!=*(q+j))
					o=1;
				if (((i+m-1)!=(p+n-1))&&*(i+m)!=' ')
					o=1;
			}
			if (o==0&&a>m)
				for (k=p+n-1;k>=i+m;k--)
					*(k+a-m)=*k;
			if (o==0&&a<m)
				for (k=i+m;k<=p+n-1;k++)
					*(k+a-m)=*k;
			if (o==0)
			{
			    for (j=0;j<=a-1;j++)
				    *(i+j)=*(r+j);
			    i=i+a;
		    	n=n-m+a;
			}
		}
	}
	for (i=p;i<=p+n-1;i++)
		printf("%c",*i);
	printf("\n");
}
int main()
{
	int i,j=0,k=0;
	char s[10000];
	char word[100][100];
	char w1[100],w2[100];
	gets(s);
	gets(w1);
         gets(w2);
	for(i=0;s[i]!='\0';i++)
	{
		if(s[i]!=' ')
		word[j][k++]=s[i];
		else
		{
			j++;k=0;
		}
	}
    for(i=0;i<=j;i++)
    if(strcmp(word[i],w1)==0)  strcpy(word[i],w2);
    for(i=0;i<j;i++)
    printf("%s ",word[i]);
    printf("%s",word[j]);
}
int main()
{
	char s[102], a[101], b[101];
	char s0[101]={'\0'}, c[101]={'\0'};
	int i, j=0, t;
	gets(s);
	gets(a);
	gets(b);

	for(i=0; s[i]!='\0'; i++)
	{
		if(s[i]!=' ')
		{
			s0[j]=s[i];
			j++;
		}
		if(s[i]==' '||s[i+1]=='\0')
		{
			if(strcmp(s0, a)==0)
			{
				strcat(c, b);
				strcat(c, " ");         /*??????????*/
				j=0;
				for(t=0; s0[t]!='\0'; t++)
					s0[t]='\0';
			}
			else
			{
				strcat(c, s0);
				strcat(c, " ");
				j=0; 
				for(t=0; s0[t]!='\0'; t++)
					s0[t]='\0';
			}

		}
	}
	for(i=0; c[i]!='\0'; i++)
	{
		if(c[i]==' '&&c[i+1]=='\0')
			c[i]='\0';
	}
	puts(c);
	return 0;
}
int main()
{
	char s[101];
	char a[101];
	char b[101];
	int la, lb; /* Length of string a,b */
	char *p; /* position */
	char t[101];
	char *ss; /* position in s move right one-way */

	gets(s);
	scanf("%s", a);
	scanf("%s", b);
	la = strlen(a);
	lb = strlen(b);
	ss = s;
	while ((p=strstr(ss, a))!=NULL) {
		if ((p==s||*(p-1)==' ')&&(*(p+la)==' ')) {
			strcpy(t, p+la+1);
			strcpy(p, b);
			*(p+lb) = ' ';
			strcpy(p+lb+1, t);
		}
		if ((p==s||*(p-1)==' ')&&(*(p+la)=='\0')) {
			strcpy(p, b);
			*(p+lb) = '\0';
		}
		ss = p + la + 1;
	}
	puts(s);
	
	return 0;
}
void main()
{
	char *str,*s1,*s2,(*s)[101];
	int i,j=0,k=0;
	str=(char *) malloc(101);
	s1=(char *) malloc(101);
	s2=(char *) malloc(101);
	s=(char (*)[101])calloc(101,101);
	gets(str);
	scanf("%s%s",s1,s2);
	for(i=0;*(str+i)!='\0';i++)
	{
		if(*(str+i)==' ')
		{
			k++;j=0;
		}
		else if(*(str+i)!=' ')
		{
			*(*(s+k)+j)=*(str+i);j++;
		}
	}
		for(i=0;i<=k;i++)
			if(strcmp(*(s+i),s1)==0)
				strcpy(*(s+i),s2);
		printf("%s",*s);
		for(i=1;i<=k;i++)
			printf(" %s",*(s+i));
}
int main()
{
	char s[100], str1[100], str2[100], a[100][100];
	gets(s);
	int len=strlen(s);
    gets(str1);
    gets(str2);
	int lenth=strlen(str2);
	int i, j, p;
	for(i=0,j=0,p=0;j<len;j++)
	{
		a[i][p++]=s[j];
		if(s[j+1]==' '){j=j+1;a[i][p]='\0';i=i+1;p=0;}
	}
    a[i][p]='\0';
	int num=i;
	int judge=0;
	for(i=0;i<num+1;i++)
	{
		if(strcmp(a[i], str1)==0)
		{
			for(j=0;j<lenth;j++)
			{
				a[i][j]=str2[j];
			}
			a[i][lenth]='\0';
		    judge=1; 
		}
	}
   
	if(judge==0)printf("%s\n", s);
	else
	{
		printf("%s", a[0]);
		for(i=1;i<num+1;i++)
		{
			printf(" %s", a[i]);
		}
		printf("\n");
	}
	return 0;
}
void main()
{
	char *s,*a,*b,*c,*e;
	s=(char *)malloc(101*sizeof(char));
	a=(char *)malloc(101*sizeof(char));
	b=(char *)malloc(101*sizeof(char));
	c=(char *)malloc(101*sizeof(char));
	gets(s);
	gets(a);
	gets(b);
	e=s+strlen(s);
	for(;;)
	{
		sscanf(s,"%s",c);
		if(strcmp(a,c)==0) printf("%s",b);
		else printf("%s",c);
		s=s+strlen(c)+1;
		if(s>=e) break;
		printf(" ");
	}
}
int main()
{
	char a[500],b[100],c[100],d[100][100];
	gets(a);
	gets(b);
	gets(c);
	int i,j,k=0;
	for(i=0;i<strlen(a);i++,k++)
	{
		for(j=i;a[j]!=' ';j++)
		{
			d[k][j-i]=a[j];
			d[k][j-i+1]='\0';
			if(a[j]=='\0')
			{
				break;
			}
		}
		i=j;
	}
	for(i=0;i<k;i++)
	{
		if(strcmp(b,d[i])==0)
		{
			strcpy(d[i],c);
		}
	}
	for(i=0;i<k-1;i++)
	{
		printf("%s ",d[i]);
	}
	printf("%s",d[k-1]);
	return 0;
}
void main()
{
	char *p[100];
	int i=0,j;
    *(p+i)=(char *)malloc(100);
	while(scanf("%s",*(p+i))!=EOF)
	{
		i++;
		*(p+i)=(char *)malloc(100);
	}
	for(j=0;j<i-2;j++)
	{
		if (strcmp(*(p+j),*(p+i-2))==0)
			strcpy(*(p+j),*(p+i-1));
	}
	printf("%s",*p);
	for (j=1;j<i-2;j++)
		printf(" %s",*(p+j));
}
int main()
{
    char zfc[10000],a[100],b[100];
    int i,lone,ltwo,lthree,k,shuzu[10000]={0},p=0,count[10000];
	gets(zfc);
	gets(a);
	gets(b);
	lone=strlen(zfc);
	ltwo=strlen(a);
	lthree=strlen(b);
	for(i=0;i<lone-ltwo+1;i++)
	{
		if(i==0)
		{
		      for(k=0;k<ltwo;k++)
			  {
				   if(zfc[k]==a[k])
				   {
					   count[i]+=1;
				   }
			  }
			  if(count[i]==ltwo&&zfc[ltwo]==' ') 
			  {
				  shuzu[i]=1;
               }
		}
		else if(i>0&&i<lone-ltwo)
		{
			for(k=0;k<ltwo;k++)
			{
				if(zfc[k+i]==a[k])
				{
					count[i]+=1;
				}
			}
			if(count[i]==ltwo&&zfc[i+ltwo]==' '&&zfc[i-1]==' ') 
			{
				shuzu[i]=1;
			}
		}
		else
		{
            for(k=0;k<ltwo;k++)
            {
                               if(zfc[k+i]==a[k])
                               {
                                                 count[i]+=1;
                               }
            }
            if(count[i]==ltwo&&zfc[i-1]==' ')
            {
                                           shuzu[i]=1;
            }
         } 
  } 
	while(p<lone)
	{
                 if(shuzu[p]==0)
                 {
                                printf("%c",zfc[p]);
                 }
                 else
                 {
                     printf("%s",b);
                     p=p+ltwo-1;
                 }
                 p++;
     }
	return 0;
}
int main() {
        char s[120], a[120], b[120];
        gets(s);
        gets(a);
        gets(b);
        int len_s = strlen(s);
        int len_a = strlen(a);
        int i = 0, j;
        while (i < len_s) {
                if (i == 0 || s[i - 1] == ' ') {
                        for (j = 0; j < len_a && i + j < len_s; j ++)
                                if (s[i + j] != a[j])
                                        break;
                        if (j == len_a) {
                                cout << b;
                                i += len_a;
                        }
                        else {
                                cout << s[i];
                                i ++;
                        }
                }
                else {
                        cout << s[i];
                        i ++;
                }
        }
        cout << endl;

        return 0;
}
int main(){
   char s[101],a[101],b[101];
   int n,m;
   int i,j,k=0;
   gets(s);
   scanf("%s%s",a,b);
   n=strlen(s);
   m=strlen(a);
   for(i=0;i<n;i++)
   {
	   if((i==0&&s[i]==a[0]&&s[i+m-1]==a[m-1]&&s[i+m]==' ')||(i!=0&&s[i-1]==' '&&s[i]==a[0]&&s[i+m-1]==a[m-1]&&s[i+m]==' ')||(i+m==n&&s[i-1]==' '&&s[i]==a[0]&&s[i+m-1]==a[m-1])){
		   for(j=i;j<i+m;j++)
		   {
			   if(s[j]==a[j-i])  
			   {
				   k++;
			   }
		   }
		   
		   if(k==m)
		   {
			 	   printf("%s",b);
				   i+=m-1;
		   }else
		   {
			   printf("%c",s[i]);
		   }
		   k=0;
		}else
	  {
			printf("%c",s[i]);
	}
   }
   printf("\n");


  
   return 0;
}
int main()
{
	char s[100][100]={"\0"},a[100]={"\0"},b[100]={"\0"};  //???????
	int i,j,x=0;
	for (i=0;i<100;i++)
	{
		for (j=0;j<100;j++)
		{
			cin.get(s[i][j]);
			if (s[i][j]==32)
			{
				s[i][j]=0;
				j=100;
			}
			else if (s[i][j]==10)
			{
				s[i][j]=0;
				j=i=100;
			}
		}
	}                                                     //?????????????
	for (j=0;j<100;j++)
	{
		cin.get(a[j]);
		if (a[j]==32||a[j]==10)
		{
			a[j]=0;
			break;
		}
	}                                                     //????????a
	for (j=0;j<100;j++)
	{
		cin.get(b[j]);
		if (b[j]==32||b[j]==10)
		{
			b[j]=0;
			break;
		}
	}                                                     //????????b
	for (i=0;i<100;i++)
	{
		for (j=0;j<100;j++)
		{
			if (a[j]==s[i][j])
				x=x+1;
		}
		if (x==100)
			for (j=0;j<100;j++)
				s[i][j]=b[j];
		else
			x=0;
	}                                                     //????
	for (i=0;i<100;i++)
	{
		for (j=0;j<100;j++)
		{
			if (s[i][j]!=0&&s[i][j+1]==0&&s[i+1][0]!=0)
				cout<<s[i][j]<<" ";
			else if (s[i][j]!=0)
				cout<<s[i][j];
		}
	}                                                     //????
	return 0;
}