semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{

	int i,n;
		
	char s[120];
	char word[120];
	char a[120];
	char b[120];

	gets(s);

	gets(a);


	gets(b);
	

	for(i=0;s[i]!=' '&&s[i]!='\0';i++)
	{
		word[i]=s[i];
		
	}
	word[i]='\0';
	if(strcmp(word,a)==0) 
	{
		
	    printf("%s",b);
	}
	else
		printf("%s",word);
	n=i;
while(s[i]!='\0')
{
	i++;

	for(;s[i]!=' '&&s[i]!='\0';i++)
	{
		word[i-n-1]=s[i];
	

	}

	word[i-n-1]='\0';
    if(strcmp(word,a)==0) 
	{
		
	    printf(" %s",b);
	}
	else
		printf(" %s",word);
	
	
n=i;
}

return 0;
}
void main()
{
	int i,j,k;
	char a[100]={""},b[100]={""},c[100]={""},d[100]={""},*p,*q;
	gets(c);
	gets(a);
	gets(b);
	p=c;
	q=d;
	for(i=0;;)
	{
		for(j=0;*(p+i)!=' '&&*(p+i)!='\0';i++,j++)
			*(q+j)=*(p+i);
		*(q+j)='\0';
		if(strcmp(d,a)==0)
			printf("%s",b);
		else for(k=0;k<j;k++)
				printf("%c",*(q+k));
		if(*(p+i)!='\0') printf(" ");
		else break;
		i++;
	}
}
//????
int main()
{
	char s[100],a[100],b[100];
	int i,j,k,y;//y????????
	gets(s);
	gets(a);
	gets(b);
	for (i=0;i<strlen(s);)
	{
		y=0;
		for (j=i;j<i+strlen(a);j++)
		{
			if (s[j]==a[j-i])//???????
			{
				if (s[i-1]==32||i==0)
				{
					y=y+1;
				}
			}
			else
				break;
		}
		if (y==strlen(a))
		{
			i=i+strlen(a);
			for (k=0;k<strlen(b);k++)
				cout<<b[k];
		}
		else 
		{
			cout<<s[i];
			i++;
		}
	}
	return 0;
}
void main()
{
 char str[80],s[30][20],test1[20],test2[20],*p;
 int i,j,l,c,m=0;
 gets(str);
 gets(test1);
 gets(test2);
 p=str;
 for(i=0,c=0;*(p+i)!=' ';i++,c++)
  s[0][c]=*(p+i);
  s[0][c]='\0';
 l=strlen(str);
 m=1;
 for(i=0;i<l;i++)
 {
  if(*(p+i-1)==' '&&*(p+i)!=' ')
  {
   for(j=i,c=0;str[j]!=' ';j++,c++)
   {
    s[m][c]=str[j];
   }
   s[m][c]='\0';
   m++;
  }
 }
 for(i=0;i<m;i++)
 {
  if(strcmp(test1,s[i])==0)
  {
   strcpy(s[i],test2);
  }
 }
 for(i=0;i<m-1;i++)
 printf("%s ",s[i]);
 printf("%s",s[m-1]);
}
int main()
{  char a[50][20],p[20],r[20];
   int i=0,n=0;
   cin>>a[0];
   while(cin.get()!='\n')
   {
   i++;
   cin>>a[i];n=i;
   }
   cin>>p;cin.get();cin>>r;
   for(i=0;i<=n;i++)
   {
   if(strcmp(a[i],p)==0)strcpy(a[i],r);
   }
   for(i=0;i<n;i++)cout<<a[i]<<" ";
   cout<<a[n]<<endl;
	return 0;
}
int main()
{
	char a[1000],b[50],e[50];
    int c[1000],d[1000];
	int i,n,flag1=0,j=0,m,k,x,l,flag2=0,g;
	gets(a);
	gets(b);
	gets(e);
    n=strlen(a);
	x=strlen(b);
	d[0]=0;
	for(i=0;i<n;i++)
	{
        if(a[i]==' '&&flag1==0)
		{
			c[j]=i;
			d[j+1]=i+1;
			j++;
			flag1=1;
			m=i;
		}
		else
		{
			if(a[i]==' ')
			{
               c[j]=i-m-1;
			   d[j+1]=i+1;
			   j++;
			   m=i;
			}
		}

	}
	c[j]=n-1-m;
    k=j+1;
   for(j=0;j<k;j++)
   {
	   
	   if(c[j]==x)
	   {
		   g=0;
		   for(l=d[j];l<d[j]+c[j];l++,g++)
		   {
                if(b[g]!=a[l])
					flag2=1;
		   }
		   g=0;
		   if(flag2==0)
		   {
                 if(j==0)
					 printf("%s",e);
				 else
					 printf(" %s",e);
		   }
		   else
		   {
			   if(j==0)
                 for(l=d[j];l<d[j]+c[j];l++)
					 printf("%c",a[l]);
				 else
				 {printf(" ");
                   for(l=d[j];l<d[j]+c[j];l++)
					   printf("%c",a[l]);}
		   }
           flag2=0;
	   }
	   else
	   {
		   if(j==0)
                 for(l=d[j];l<d[j]+c[j];l++)
					 printf("%c",a[l]);
				 else
				 {printf(" ");
                   for(l=d[j];l<d[j]+c[j];l++)
					   printf("%c",a[l]);}
	   }
   }


	return 0;

}
void main()
{
	int i=0,j,v,x,c,flag;
	char str[100],a[10],b[10];
	gets(str);
	gets(a);
	gets(b);
	v=strlen(str);
	x=strlen(a);
	c=strlen(b);
	str[v]=' ';
	flag=x;
  for(i=0;i<x;i++)
  {
	  if(str[i]==a[i])
	  {
		  flag--;
	  }
  }
  if(flag==0&&str[x]==' ')
  {
	  printf("%s",b);
  }
  else for(i=0;i<x;i++)
  {
	  printf("%c",str[i]);
  }
  i=x;
  while(i<v)
  {   flag=x;
	  for(j=i;j<i+x;j++)
	  {
		  if(str[j]==a[j-i])  flag--;
	  }
	  if(flag==0&&str[i-1]==' '&&str[i+x]==' ')
	  {
		  printf("%s",b);i=i+x;
	  }
	  else 
	  {
		  printf("%c",str[i]);i++;
	  }
  }
}
int main(){
int i,j=0,k=0;
char s[1000],a[100],b[100],p[100][100];
gets(s);
cin>>a>>b;
for(i=0;i<strlen(s);i++){
    if(s[i]==' '){
        j++;
        k=0;}
    else{ 
          p[j][k]=s[i];
          k++;}}
for(i=0;i<=j;i++){
    if(strcmp(p[i],a)==0){
       strcpy(p[i],b);}}
cout<<p[0];
for(i=1;i<=j;i++){
    cout<<' '<<p[i];}                                                                                                                                                                                                                              

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

}
void main()
{
	char s[123],a[20],b[20],danci[50][20],
		*ss=s,*aa=a,*bb=b,*p1,*p2,*word[50];
	int i,j=0,num;
	for(i=0;i<50;i++)
		word[i]=danci[i];
	gets(ss); gets(aa); gets(bb);
	for(p1=p2=s;;p1++)
	{
		if(*p1==' '||*p1=='\0')
		{
			strncpy(word[j],p2,p1-p2);
			*(word[j]+(p1-p2))='\0';
			p2=p1+1;
			j++;
			if(*p1=='\0')
				break;
		}
	}
	num=j;
	for(j=0;j<num;j++)
	{
		if(!strcmp(word[j],aa))
			strcpy(word[j],bb);
	}
	for(j=0;j<num-1;j++)
		printf("%s ",word[j]);
	printf("%s",word[j]);
}
int main()
{
    char w[1000],s[100][100],a[100],b[100];
    int i=0,j=0,k=0,d;
    gets(w);
	gets(a);
	gets(b);
    while(w[i]!='\0')
	{
       while(w[i]!=' '&&w[i]!='\0')
	   {
          s[j][k]=w[i];
          i++;
          k++;
	   }
       s[j][k]='\0';
       j++;

	   k=0;
       while(w[i]==' ')
	   {
          i++;
	   }
	}

  for(i=0;i<j;i++)
  {
	   d=strcmp(s[i],a);
       if(d==0)
	   {
		  strcpy(s[i],b);
	   }
  }
    printf("%s",s[0]);
    for(i=1;i<j;i++)
	{
    	printf(" %s",s[i]);
	}
return 0;
}
int main()
{
  char a[100][100],b[100],c[100],t;
  int i,j;
  for(i=0;i<=100;i++)
  {
    scanf("%s",a[i]); 
    t=getchar();
    if(t!=' ')
    {
      j=i;
      break;
    }             
  }
  gets(b);
  gets(c);  
  if(strcmp(a[0],b)==0) printf("%s",c);
     else printf("%s",a[0]);             
  for(i=1;i<=j;i++)
   {
     if(strcmp(a[i],b)==0)printf(" %s",c);
     else printf(" %s",a[i]);                  
   }

  return 0;
}
int main()

{
	int i,k,n=0,p,j;
	char s[100],a[100],b[100];
	gets(s);gets(a);gets(b);
	
	i=0;
	while (a[i]!='\0') {n++;i++;}
	i=0;
	while(s[i]!='\0')
	{
		p=1;
		for(j=0;j<n;j++) if (a[j]!=s[i+j]) p=0;
		if(p) if (i>1&&s[i-1]!=' ') p=0;
		if (p) {printf("%s",b);i=i+n-1;}
		else printf("%c",s[i]);
		i++;
	}
	return 0;
}
int main()
{
	char zfc[200]={0},a[100]={0},b[100]={0};
	char c[50][50]={0};
	int i=0,j,k=0,n=0;
	gets(zfc);
	gets(a);
	gets(b);
    for(i=0;zfc[i]!=' '&&zfc[i]!=0;i++)
	{
		for(k=0;zfc[i]!=' '&&zfc[i]!=0;i++,k++)
		{
		 c[n][k]=zfc[i];
		}
		n++;
    }
	for(j=0;j<n-1;j++)
	{
	if(strcmp(c[j],a)==0)
	{
		strcpy(c[j],b);
	}
	printf("%s ",c[j]);
	}
	if(strcmp(c[n-1],a)==0)
	{
		strcpy(c[n-1],b);
	}
	printf("%s",c[n-1]);
	return 0;
}
int main()
{
	char words[200],a[100],b[100],word[100][100];
	int n,k,j=0,i;
	gets(words);
	gets(a);
	gets(b);
	n=strlen(words);
    for(i=0,k=0;i<n+1;i++){
		if(words[i]==' '||words[i]=='\0'){
           word[k][j]='\0';
		   k++;
		   j=0;
		}
		else{
           word[k][j]=words[i];
		   j++;
		}
	}

    for(i=0;i<k-1;i++){
		if(strcmp(word[i],a)==0)
			printf("%s ",b);
		 else printf("%s ",word[i]);
	}
  
   	if(strcmp(word[i],a)==0)
		printf("%s",b);
    else printf("%s",word[i]);
	return 0;
}
int main(void)
{
	int x,i,k=0;
	char str[100];
	char temp[100];
	char in[100];
	char out[100];
	char * str0;
	gets(str);
	gets(in);
	gets(out);
	str0=str;
	x=strlen(str);
	for(i=0;i<x;i++)
	{
		if(*(str0+i)!=' '&&i!=x-1)
		{
			temp[k]=*(str0+i);
			k++;
		}
		else if(*(str0+i)==' '&&i!=x-1)
		{
			temp[k]='\0';
			if(strcmp(temp,in)==0)
			{
				printf("%s ",out);
			}
			else
			{
				printf("%s ",temp);
			}
			k=0;
		}
		else if(i==x-1)
		{
			temp[k]=*(str0+i);
			temp[k+1]='\0';
			if(strcmp(temp,in)==0)
			{
				printf("%s\n",out);
			}
			else
			{
				printf("%s\n",temp);
			}
		}
	}
	return(0);
}
int main()
{
	char s[50][100];
	int i,j,l=0;
	while (cin>>s[l++]);
	l--;
	for (i=0;i<l-2;i++)
	{
		if (strcmp(s[i],s[l-2])==0)	//??????????????
		{
			for (j=0;j<=strlen(s[l-1]);j++)
			s[i][j]=s[l-1][j];	//??????????
		}
	}
	for (i=0;i<l-3;i++) cout<<s[i]<<' ';	//??
	cout<<s[l-3];
	return 0;
}
int n1,n2,n3;
char str1[100],str2[100],str3[100];
int f(char *p)
{
	int m,n;
	n=0;
    char *f;
	f=p;
	for(m=0;m<n2;m++)
	{
		if((*f)==str2[m])
		{	n++;}
		f++;
	}
	if(n==n2) return 1;
	else return 0;
}
int m(char *p)
{
	if(*p>='a'&&*p<='z') return 1;
	else if(*p>='A'&&*p<='Z') return 1;
	else return 0;
}
void main()
{
	gets(str1);n1=strlen(str1);
	scanf("%s",str2);n2=strlen(str2);
	scanf("%s",str3);n3=strlen(str3);
	int i=0,j;
	char *p1,*p2;
	p1=str1;
	for(i=0;(p1-str1)<n1;i++,p1++)
	{
		p2=p1+n2;
		if((f(p1)==1)&&(m(p1-1)==0)&&(m(p2)==0))
		{
			for(j=0;j<n3;j++)
				printf("%c",str3[j]);
			p1=p1+n2-1;
		}
		else
		{
			printf("%c",*p1);
		}
	}
}
int main()
{
	char str[101],nstr[101][101],n[101]={'\0'},k[3]={' ','\0'},s[3]={'\0'};
	char a[101],b[101];
	int i,t=0,m=0;
	gets(str);
	gets(a);
	gets(b);
	for(t=0;;t++)
	{
		for(i=0;;i++)
		{
		   if(str[m]!=' '&& str!='\0')
		   {
			  nstr[t][i]=str[m];
		   }
		   if(str[m]==' '||str[m]=='\0')
		   {
			  nstr[t][i]='\0';
			  break;
		   }
		   m++;
		}
        if(str[m]=='\0') break; 
		m++;
	}
	for(i=0;i<=t;i++)
	{
		if(strcmp(nstr[i],a)==0)
		{
              strcat(n,b);
		}
		if(strcmp(nstr[i],a)!=0)
		{
			strcat(n,nstr[i]);
		}
		if(i!=t)
		{
			strcat(n,k);
		}
	}
    puts(n);
	return 0;
}
void main()
{
	char *s[100],*a,*b;int i;
	for(i=0;;i++)
	{
		s[i]=(char *)calloc(1,100*sizeof(char));
		scanf("%s",s[i]);
		if(getchar()=='\n') break;
	}
	int n=i;
	a=(char *)calloc(1,100*sizeof(char));
	b=(char *)calloc(1,100*sizeof(char));
	scanf("%s",a);scanf("%s",b);
	for(i=0;i<=n;i++)
	{
		if(strcmp(s[i],a)==0) strcpy(s[i],b);
	}
	for(i=0;i<=n;i++)
	{
		if(i==0) printf("%s",s[i]);
		else printf(" %s",s[i]);
	}

	
}
/*
 * 1000062703.cpp
 *
 *  Created on: 2010-11-12
 *      Author: Administrator
 */
int main(){
	char a[101],sub[101],c[101];//?????
	cin.getline(a,101);//????a
	cin>>sub;//????????sub
	cin>>c;//????sub???c
	int la,ls,i,j,flag;//??????la,ls,i,j,flag
	la=strlen(a);ls=strlen(sub);//????a?sub???
	for(i=0;i<=la-ls;i++){
		if(i!=0&&a[i-1]!=' '){//??a[i]????????????????????????????????a[0]
			cout<<a[i];//???????????
			continue;//????????
		}
		flag=1;//??flag???1
		for(j=0;j<ls;j++){
			if(a[j+i]!=sub[j]){//???????????????????????
				flag=0;//??flag?0
				cout<<a[i];//???a[i]
				break;//??????
			}
		}
			if(flag){//?flag?????1????????????
				cout<<c;//??c
				i=i+ls-1;//?????????????
			}
	}
	for(j=0;j<ls;j++){//????????????????
		flag=1;
		if(a[j+la-ls]!=sub[j]){
			flag=0;break;
		}
	}
	if(flag==0||a[la-ls-1]!=' '){//??flag??0?????ls+1??????????????????sub???
		for(i=la-ls+1;i<la;i++)//??a???ls-1???????????????a[la-ls])
		cout<<a[i];}
	return 0;//????
}
int equal(char *x,char *y)      //????equal ???????????? ????1 ????0
{
	for(int k=0;x[k]!='\0'||y[k]!='\0';k++)
		if(x[k]!=y[k])
			return 0;
	return 1;
}

int main()
{
	char str[100][100];      //??100????100???????? ?????????
	
	int number=0;      //number???????

	while(1)      //????
	{
		cin>>str[number++];      //???number+1???
		if(cin.get()=='\n')      //??????????? ??????? ????
			break;
	}

	char str1[100],str2[100];      //???????? ??????????? ???????
	cin>>str1>>str2;

	for(int k=0;k!=number-1;k++)      //?????
	{
		if(equal(str[k],str1))
		{
			cout<<str2<<" ";
			continue;
		}
		cout<<str[k]<<" ";
	}
	if(equal(str[number-1],str1))
		cout<<str2<<endl;
	else
		cout<<str[number-1]<<endl;
	return 0;
}
void main()
{
	char str[300]={'\0'},w1[100],w2[100];
	char *p,*q;
	
	gets(str);
	gets(w1);
	gets(w2);
	p=str;
	q=str;
	while(*p!=' ')
	{
		p++;
	}
	*p='\0';
	
	if(strcmp(q,w1)==0)
	{
		printf("%s",w2);
	}
	else
	{
		printf("%s",q);
	}
	p++;
	q=p;
	
	while(*p!='\0')
	{
		p++;
		if((*p==' ')||(*p=='\0'))
		{
			*p='\0';
			
			printf(" ");
				if(strcmp(q,w1)==0)
				{
					printf("%s",w2);
				}
				else
				{
					printf("%s",q);
				}
					
				p++;
				q=p;
		}
	}
}
void main()
{
  char str[100],*p,a[100],b[100],s[100][20];
  int l,i,j,d=1,k;
  gets(str);
  scanf("%s %s",a,b);
  l=strlen(str);
  p=str;
  for(i=0,j=0;;i++,j++)
  {
   if(str[i]==' ') break;
   else s[0][j]=str[i];
  }
  s[0][j]='\0';
  for(i=0;i<l;i++)
  {
   if(*(p+i-1)==' '&&*(p+i)!=' ')
   {
    for(j=0,k=i;;j++,k++)
    {
     if(str[k]==' ') break;
     else s[d][j]=*(p+k);
    }
    s[d][j]='\0';
    d=d+1;
   }
  }
  for(i=0;i<d;i++)
  {
   if(strcmp(s[i],a)==0)
   strcpy(s[i],b);
  }
  for(i=0;i<d-1;i++)
  printf("%s ",s[i]);
  printf("%s",s[d-1]);
}
int bijiao(int p,char *a,int n,char *b)
{
	int i,flag=0;
	for(i=0;i<n;i++)
	{
		if(a[p+i]!=b[i])
		{
			return 0;
			flag=1;
			break;
		}
	}
	if(flag==0)
	{
		return 1;
	}
}
int main()
{
	char str[1000];
	char a[100];
	char b[100];
	int i;
	int len1,len2,len;
	gets(str);
	gets(a);
	gets(b);
	len=strlen(str);
	len1=strlen(a);
	len2=strlen(b);
	for(i=0;i<len;i++)
	{
		if(i==0)
		{
			if(bijiao(i,str,len1,a)==1&&str[i+len1]==' ')
			{
				printf("%s",b);
				i=i+len1-1;
			}
			else
			{
				printf("%c",str[i]);
			}
		}
		else
		{
			if(bijiao(i,str,len1,a)==1&&str[i+len1]==' '&&str[i-1]==' ')
			{
				printf("%s",b);
				i=i+len1-1;
			}
			else if(bijiao(i,str,len1,a)==1&&i+len1==len&&str[i-1]==' ')
			{
				printf("%s",b);
				i=i+len1-1;
			}
			else
			{
				printf("%c",str[i]);
			}
		}
	}
	printf("\n");
	return 0;
}
void f(char *s,char *a,char *b,int n1,int n2)
{
        int i,j,k,m,n;
        char c[100];
        char d[100];
        for(i=0,j=0;*(s+j)!='\0';)
        {
                int flag=1;
                for(m=0;*(s+j)!=' '&&s[j]!='\0';m++,j++)
                {
                        d[m]=s[j];
                        if(s[j+1]=='\0')
                                flag=0;
                }
                d[m]='\0';
                j=j-m;
                if(strcmp(d,a)!=0)
                {
                        for(n=0;n<=m;i++,j++,n++)
                                *(c+i)=*(s+j);
                }
                else
                {
                        for(k=0,n=0;n<n2;i++,k++,n++)
                                *(c+i)=*(b+k);
                        j=j+n1;
                }
                if(flag==1)*(c+i)=' ';
                else break;
        }
        *(c+i)='\0';
        printf("%s",c);
}

void main()
{
        char s[100],a[100],b[100];
        int n1,n2;
        gets(s);
        gets(a);
        gets(b);
        n1=strlen(a);
        n2=strlen(b);
        f(s,a,b,n1,n2);
}
int main()
{
    char a[100]={0},old[100]={0},by[100]={0},a1[100]={0};
    int s1,s2,s3,i,j,k,l=1,mark[100]={0};    int rem[10]={0};
    gets(a);
    cin>>old;
    cin>>by;
    s1=strlen(a);
    s2=strlen(old);
    s3=strlen(by);
    for(i=0;i<s1;i++)
       {
                     k=0;
                     if((a[i-1]==' '||i==0)&&((i+s2==s1)||a[i+s2]==' '))
                     {
                                 for(j=i;j<i+s2;j++)
                     {
                                        if(a[j]==old[j-i]){k+=1;}
                                        }
                                        if(k==s2){for(j=i;j<i+s2;j++)mark[j]=1;cout<<by;}
                                        }
                     if(mark[i]>0)continue;cout<<a[i];
                                        } 
                                        getchar();getchar();
                                        return 0;
                                        }
void main()
{
	int i,j,k,tag=1,flag=1,e=0;
	char q[101],tmp[50][101],p[101],t[101];
	gets(q);
	gets(p);
	gets(t);
	for(i=0;i<50;i++)
	{
		k=0;
		flag=1;
		for(j=e;j<101;j++)
		{
			if(q[j]!=' '&&q[j]!=','&&q[j]!='\0')
			{
				tmp[i][k]=q[j];
				k++;
			}
			else if(q[j]==' ')
			{
				tmp[i][k]='\0';
				e=j+1;
				break;
			}
			else if(q[j]==',')
			{
				tmp[i][k]='\0';
				e=j+2;
				break;
			}
			else if(q[j]=='\0')
			{
				tmp[i][k]='\0';
				tag=0;
				break;
			}
		}
		for(j=0;j<101;j++)
		{
			if(tmp[i][j]!=p[j]&&p[j]!='\0')
			{
				flag=0;
				break;
			}
			else if(tmp[i][j]==p[j]&&p[j]!='\0') continue;
			else if(p[j]=='\0') break;
		}
		if(tag==1&&flag==0&&i>0) printf(" %s",tmp[i]);
		else if(tag==1&&flag==1&&i>0) printf(" %s",t);
		else if(tag==0&&flag==0&&i>0)
		{
			printf(" %s",tmp[i]);
			break;
		}
		else if(tag==0&&flag==1&&i>0)
		{
			printf(" %s",t);
			break;
		}
		else if(tag==1&&flag==0&&i==0) printf("%s",tmp[i]);
		else if(tag==1&&flag==1&&i==0) printf("%s",t);
		else if(tag==0&&flag==0&&i==0)
		{
			printf("%s",tmp[i]);
			break;
		}
		else if(tag==0&&flag==1&&i==0)
		{
			printf("%s",t);
			break;
		}
	}
}
int main ()
{
	char sentence[110],first[110],second[110];
	int i,j,flag;
	int lens,len1,len2;
	cin.getline(sentence,110);
	cin.getline(first,110);
	cin.getline(second,110);
	lens=strlen(sentence);
	len1=strlen(first);
	for (i=0;i<lens-len1+1;i++)
	{
		flag=0;
		if((i==0&&sentence[i+len1]==' ')||(sentence[i-1]==' '&&sentence[i+len1]==' ')||(i==lens-len1&&sentence[i-1]==' '))
		{
		for (j=0;j<len1;j++)
		{
			if(sentence[i+j]==first[j])
				flag++;
		}
		}
		if (flag==len1)
		{
			i=i+len1-1;
			cout << second ;
		}
		else
			cout << sentence[i] ;
	}
	if (flag!=len1)
		for (i=lens-len1+1;i<lens;i++)
			cout << sentence[i];
	return 0;
}
int main()
{
	char cc[500]={'\0'},c1[20]={'\0'},c2[20]={'\0'},c[30][20]={'\0'},*p1,*p2,*p3,*p4;
	int a,b,d,e=0,f=0,h,i;
	gets(cc);
	gets(c1);
	gets(c2);
    p1=&c[0][0];
	p2=&c1[0];
	p3=&c2[0];
	p4=&cc[0];
	for (a=0;a<500;a++)
	{
		if (*(p4+a)==' ')
		{
			e++;
			f=0;
		}
		else if(*(p4+a)!='\0')
		{
			*(p1+e*20+f)=*(p4+a);
			f++;
		}
		else 
		{
			break;
		}
	}
	i=strlen(c1);
	h=strlen(c2);
    for (a=0;a<e+1;a++)
	{
		for (b=0;b<i;b++)
		{
			if (*(p1+a*20+b)!=*(p2+b))
			{
				break;
			}
		}
		if (b==i)
		{
			for (d=0;d<h;d++)
			{
		        *(p1+a*20+d)=*(p3+d);
			}
        	for (d=h;d<20;d++)
			{
	           	*(p1+a*20+d)='\0';
			}
		}
	}
	for (d=0;d<e;d++)
	{
		printf("%s ",c[d]);
	}
	printf("%s\n",c[e]);
}
int main(){
	char a[100],b[20],c[20],d[20];
	cin.getline(a,100);
	cin.getline(b,20);
	cin.getline(c,20);
	int i=0,n=0,j=0,k,l=0;
	for(;a[i]!=0;){
		if(a[i]==32)i++;
		for(;a[i]!=32&&a[i]!=0;i++,n++)d[n]=a[i];//?a?????d
		d[n]=0;
		if(strcmp(b,d)==0){//??a????b??
			for(j=i-n;n>0;n--)
				for(k=j;a[k]!=0;k++)a[k]=a[k+1];//??a???
			for(;c[l]!=0;l++,j++){
			    for(k=j;a[k]!=0;k++);
			    for(;k>=j;k--)a[k+1]=a[k];
			    a[j]=c[l];//?c?????
		        }
			l=0;
			i=j;
		    }
		else n=0;
	    }
	cout<<a;
}
int main()
{
	int a,b,d,e=-1;
	char f[100],g[100],h[100],i[100],j[100];
	gets(f);
	gets(g);
	gets(h);
	f[-1]=' ';
	for(a=-1;a<=100;)
	{
		i[e]=f[a];
		if(f[a]==' '&&f[a+1]==g[0])
		{
			for(b=0;;b++)
			{
				if(g[b]=='\0')
				{
					for(d=0;h[d]!='\0';d++)
					{
						i[e+d+1]=h[d];
					}
					i[e+d+1]=' ';
					e=e+d;
					a=a+b;
					break;
				}

				if(f[a+b+1]!=g[b]) break;
			}
		}
		a++;
		e++;
	}
	printf("%s",i);
}
int main()
{
	char a[100],b[100],c[100],t=1;
	char tihuan[100][100];
	int i,j=0,m=-1,n;
	gets(a);
	scanf("%s",b);
	scanf("%s",c);
	for(i=0;;i++)
	{
		if(a[i]==' ')
		{
			n=m;
			m=i;
			strncpy(tihuan[j],a+n+1,m-n-1);
				tihuan[j][m-n-1]='\0';
				j++;
		}
		if(a[i]=='\0')
		{
			n=m;
			m=i;
				strncpy(tihuan[j],a+n+1,m-n-1);
				tihuan[j][m-n-1]='\0';
				j++;
				break;
		}
	}
	for(i=0;i<j;i++)
	{
		if(strcmp(tihuan[i],b)==0)
		{
			strcpy(tihuan[i],c);
		}
	}
	for(i=0;i<j;i++)
		if(t)
		{
		printf("%s",tihuan[i]);
		t=0;
		}
		else
			printf(" %s",tihuan[i]);
	return 0;
}
char str[101], a[101], b[101], c[101];
int i=0, len_str, len_a, len_b, pos;
int main(void)
{
	gets(str);
	len_str = strlen(str);
	scanf("%s%s", a, b);
	len_a = strlen(a);
	len_b = strlen(b);
	while(i<len_str)
	{
		pos=0;
		while(str[i]!=' ' && i < len_str)
			c[pos++]=str[i++];
		c[pos]='\0';
		if(strcmp(a, c)==0)
			printf("%s", b);
		else
			printf("%s", c);
		if(i==len_str)printf("\n");
		else printf(" ");
		i++;
	}
	return 0;
}
int main()
{    
     char a[110],b[110],c[110];
     gets(a);
     gets(b);
     gets(c);
     int x,y,z,flag;
     x=strlen(a);
     y=strlen(b);
     z=strlen(c);
     
     for (int i=0;i<x;i++)
     {
      if((i==0&&a[y]==' ')||(a[i-1]==' '&&(i+y)==x)||(a[i-1]==' '&&a[i+y]==' ')) {
      flag=0; 
      for (int j=0;j<y;j++)
     {if (a[i+j]!=b[j])
     {flag=1;break;}}
     if (flag==0)
     {cout<<c;
     i+=y-1;continue;}}
     cout<<a[i];
     }
     
     return 0;
}
int main(){
	char s[100],a[100],b[100];
	gets(s);
	scanf("%s\n%s",a,b);
	int n,m,p=0,q,i,j;
	n=strlen(s);
	m=strlen(a);

	int begin = 0;


	for(i=0;i<n;i++)
	{
		if(a[0]==s[i] && ( i == 0 || s[i-1] == ' '))
		{
			q=i;
			p = 0 ;
			for(j=1;j<m;j++){
				if(a[j]!=s[i+j]){
					break;
				}else{
					p++;
				}
			}
			if(p==m-1 && ( i+m == n || s[i+m]== ' ') )
			{
				printf("%s",b);
				i += m - 1 ;
			}
			else
			{
				printf("%c",s[i]);
			}
		        
		}else
			printf("%c",s[i]);
	}
	
	return 0;
}
int main()
{
	char s[200],a[200],b[200],m[100][100];
	int len,n,i,j,hang=0,lie=0;
	gets(s);
	gets(a);
	gets(b);
	len=strlen(s);
	for(i=0;i<len;i++)
	{
		if(s[i]==' ')
		{
			m[hang][lie]='\0';
			hang++;
			lie=0;
		}
		else
		{
			m[hang][lie]=s[i];
			lie++;
		}
		if(s[i+1]=='\0')
		{
			m[hang][lie]='\0';
			break;
		}
	}
	for(i=0;i<=hang;i++)
	{
		if(strcmp(a,m[i])==0)
		{
			strcpy(m[i],b);
		}
	}
	for(i=0;i<hang;i++)
		printf("%s ",m[i]);
	printf("%s",m[hang]);
	return 0;
}
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;
		for(j=0;h[i][j]!='\0';j++){
			if(strcmp(h[i],w)==0){
				if(h[i][j]==w[j]){
					t=1;
				}
			}
		}
		if(t==1){strcpy(h[i],d);}
	}
	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]);
		}
}
void main()
{
	int i=0,j;
	char *p[100];
	char *daitihuan;
	char *tihuanwei;
	p[0]=(char *)malloc(30);
	while (scanf("%s",p[i])!=EOF)
	{
		p[i+1]=(char *)malloc(30);
		i++;
	}
	i--;
	daitihuan=(char *)malloc(10000*sizeof(char));
	tihuanwei=(char *)malloc(10000*sizeof(char));
	tihuanwei=p[i];
	daitihuan=p[i-1];
	for(j=0;j<i-1;j++)
		if(strcmp(p[j],daitihuan)==0)strcpy(p[j],tihuanwei);
		for(j=0;j<i-1;j++)
			printf("%s%s",p[j],j==i-2?"":" ");
}
void main()
{
	char s[300],a[200],b[200];
	char *temp,*ps,*pa,*pb;
	int flag,ls,la,lb;
	gets(s);
	gets(a);
	gets(b);
	ls=strlen(s);
	la=strlen(a);
	lb=strlen(b);
	ps=s;
	pa=a;
	pb=b;
	while (ps<s+ls)
	{
		flag=1;
		for (pa=a;((*ps!=' ') && (*ps!='\0'));ps++,pa++)
			if (*ps!=*pa) flag=0;
		if ((flag) && (pa==a+la))
		{
			if (la>=lb) 
			{
				ps=ps-la;
				while (*pb!='\0') *ps++=*pb++;
				if (la>lb)
				{
					while (*(ps+la-lb)!='\0')
					{	
						*ps=*(ps+la-lb);
						ps++;
					}
					*ps='\0';
				}
			}
			else
			{
				temp=ps;
				for (ps=s+ls;ps>=temp;ps--) 
					*(ps+lb-la)=*ps;
				ps=ps-la+1;
				while (*pb!='\0') *ps++=*pb++;
			}
			pa=a;
			pb=b;
			ls=strlen(s);
		}
		ps++;
	}
	ps=s;
	printf("%s",ps);
}
int main()
{
	char a[100],b[100],s[100],ss[100][100]={'\0'},d[100]={'\0'};
	int i,j,m,n,t,k,l,p;
	gets(s);
	gets(a);
	gets(b);
	t=strlen(s);
	n=0;
	m=0;
	for(i=0;i<t;i++){
		if(s[i]!=' '&&s[i]!='\0'){
			ss[m][n]=s[i];
			n++;
		}
		else{
			m++;
			n=0;
		}
	}
	for(j=0;j<=m;j++){
		if(strcmp(ss[j],a)==0){
			strcpy(ss[j],b);
		}
	}
	k=0;
	l=0;
	for(p=0;;p++){
		if(ss[k][l]=='\0'&&k!=m){
			
			    d[p]=' ';
                k++;
			    l=0;
			
		}
		else if(ss[k][l]!='\0'){
			d[p]=ss[k][l];
			l++;
		}
		else{
			break;
		}
	}
	puts(d);
	return 0;
}