semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
void main()
{
	char str[100][100];
	char c[101],word1[100],replaceword[100];
	gets(c); gets(word1); gets(replaceword);
	int i,j=0,k=0;
	for(i=0;c[i]!='\0';i++)
	{
		if(c[i]!=' '){
			str[j][k]=c[i];
			k++;
		}
		else {
			str[j][k]='\0';
			j++;
			k=0;
		}
	}
	str[j][k]='\0';
	for(i=0;i<=j;i++)
	{
		if(strcmp(str[i],word1)==0)
			strcpy(str[i],replaceword);
	}
	printf("%s",str[0]);
	for(i=1;i<=j;i++)
	   printf(" %s",str[i]);
	printf("\n");
}
int main(){
    char a[101]={0};
	char b[101]={0};
	char c[101]={0};
	int k,f=0;
	gets(a);
	gets(b);
	gets(c);
	int len1=strlen(a);
   	int len2=strlen(b);
   	int len3=strlen(c);
    int i,j;
	for(i=0;i<len1;i++)
	{
	       k=0;
	       for(j=i;j<i+len2;j++)
	       {
                                if(a[j]==b[j-i])
                                {
                                k=k+1;
                                }
                                else
                                {
                                    break;
                                }
           }
           if(k==len2&&(a[i-1]==' ')||i-1<0&&a[i+len2]==' ')
           {
                      for(int k=0;k<len3;k++)
                      {
                                        printf("%c",c[k]);
                                        }
                      i=i+len2-1;
            }
            else printf("%c",a[i]);
                                                       }
                                                      
	return 0;
}
void main()
{
	char str[200],a[101],b[101];
	char *ptemp,*pstr,*pa,*pb;
	int flag,lstr,la,lb;
	pstr=str;
	pa=a;
	pb=b;
	gets(pstr);
	gets(pa);
	gets(pb);
	lstr=strlen(pstr);
	la=strlen(pa);
	lb=strlen(pb);
	for (;pstr<=str+lstr-1;pstr++)
	{
		flag=1;
		while ((*pstr!=' ') && (*pstr!='\0'))
		{
			if (*pstr!=*pa) flag=0;
			pstr++;
			pa++;
		}
		if ((flag) && (pa==a+la))
		{
			ptemp=pstr;
			if (la<lb)    //add room
			{
				for (pstr=str+lstr;pstr>=ptemp;pstr--) *(pstr+lb-la)=*pstr;
				for (pstr=ptemp-la;pb<=b+lb-1;pb++,pstr++) *pstr=*pb;
				pb=b;
				lstr=lstr+lb-la;
			}
			if (la>=lb)  //cut room
			{
				for (pstr=ptemp-la+lb;pstr<=str+lstr-la+lb;pstr++) *pstr=*(pstr+la-lb);
				for (pstr=ptemp-la;pb<=b+lb-1;pb++,pstr++) *pstr=*pb;
				pb=b;
				lstr=lstr-la+lb;
			}
		}
		pa=a;
	}
	pstr=str;
	printf("%s",pstr);
}
int main()
{
	char *p[200],*p1,*p2;
	int i=0,n,j;
	for(i=0;i<200;i++)
		p[i]=(char *)malloc(100*sizeof(char));
	i=0;
	for(j=0;(*(p[i]+j)=getchar())!='\n';j++)
	{
		if(*(p[i]+j)==' ')
		{
			*(p[i]+j)='\0';
			i++;
			j=-1;
		}
	}
	*(p[i]+j)='\0';
	n=i;
	p1=(char *)malloc(100*sizeof(char));
	p2=(char *)malloc(100*sizeof(char));
	scanf("%s\n%s",p1,p2);
	for(i=0;i<=n;i++)
	{
		if(strcmp(p[i],p1)==0)
		{
		strcpy(p[i],p2);
		}
	}
	printf("%s",p[0]);
	for(i=1;i<=n;i++)
	{
		printf(" %s",p[i]);
	}
	return 0;
}
const long maxLenth=100;
const long maxwords=10000;

long n;
char word[maxwords+10][maxLenth+10];

char fw[maxLenth+10],tw[maxLenth+10];

main(){
    long i,j,k;
    char a;    
    n=0;
    do{
	scanf("%s",word[++n]);
	a=getchar();
    }while(a!='\n');
    scanf("%s%s",fw,tw);
    for(i=1;i<=n;i++){
	if(strcmp(fw,word[i])==0)printf("%s",tw);
	else printf("%s",word[i]);
	if(i<n)printf(" ");
	else printf("\n");
    }
    
    return 0;
}
typedef long long ll;

char s[110], a[110], b[110];


int main()
{
	while(gets(s))
	{
		//printf("[%s]", s);
		scanf("%s%s ", a, b);	
		
		int i = 0;
		int lena = strlen(a);
		while(s[i])
		{
			if(s[i] == ' ')	putchar(' '), i++;
			else
			{
				int j = 0;
				for(; a[j]; j++)
					if(a[j] != s[i + j])
						break;
						
				if(a[j] == 0)
				{
					i += lena;	
					printf("%s", b);
				}
				else
				{
					while(s[i] && s[i]!= ' ')
						putchar(s[i++]);	
				}	
			}
		}
		
		puts("");
	}
	return 0;	
}
char a[105];
char h[105];
char b[105];
char c[105];
char d[105];
int k;
int p;
int main()
{
	int i,j;
	int t;
	gets(a);
	scanf("%s",b);
	scanf("%s",c);
	for(i=0,j=0;i<=strlen(a);i++)
	{
		d[k++]=a[i];
		h[p++]=a[i];
		if(a[i]==' '||a[i]=='\0')
		{
			d[--k]='\0';
			if(strcmp(d,b)==0)
			{
				p-=strlen(d)+1;
				for(t=0;t<strlen(c);t++)
					h[p++]=c[t];
				if(a[i]==' ')
				h[p++]=' ';
			}
			j=k+1;
			k=0;
		}
	}
	for(i=0;i<strlen(h);i++)
		putchar(h[i]);
	return 0;
}
int main(){
	char s[100],a[100],b[100];
	gets(s);
	scanf("%s\n%s",a,b);
	int n,m,j;
	n=strlen(s);
	m=strlen(a);
	int i=0;
	while(i<n){
		int p=0;
		if((a[0]==s[i])&&((s[i-1]==' ')||(i==0))){
			for(j=1;j<m;j++){
				if(a[j]!=s[i+j]){
					printf("%c",s[i]);
					i=i+1;
					break;
				}else
					p++;
			}
	        if((p==m-1)&&((s[i+m]==' ')||(i+m==n))){
		    	printf("%s",b);
		    	i+=m;
			}else{
		    	printf("%c",s[i]);
		    	i++;
			}	
		}else{
             printf("%c",s[i]);
			 i=i+1;
		}
	}
	return 0;
}
main(){
       char text[100],s[100][20]={'\0'},a[20],b[20];
       int i,j=0,k=0,len;
       gets(text);
       len=strlen(text);
       for(i=0;i<len;i++){
           if(text[i]!=' '){
               s[j][k]=text[i];
               k=k+1;
           }
           else{
                j=j+1;
                k=0;
           }
       }
       scanf("%s",a);
       scanf("%s",b);
       for(i=0;i<=j;i++){
           if(strcmp(s[i],a)==0){ 
               strcpy(s[i],b);
           }
           printf("%s",s[i]);
           if(i!=j) printf(" ");
       }
       printf("\n");
}
int main()
{
    int i,b=0;
    char s[80],s0[20],s2[20],s3[20];
    char s1[100]={'\0'};
    gets(s);
    gets(s0);
    gets(s2);
    for(i=0;s[i]!='\0';i++)
    {
        if(s[i]!=' ') 
        {
             s3[b]=s[i];
             b++;
        }
        if(s[i]==' ')
        {
            s3[b]='\0';
            if(strcmp(s3,s0)==0)
            {
                  strcat(s1,s2);
                  strcat(s1," ");
            }
            else
            {
                  strcat(s1,s3);
                  strcat(s1," ");
            }
            b=0;
        }
      }
       s3[b]='\0';      
      if(strcmp(s3,s0)==0)
      {
                  strcat(s1,s2);
       }
      else
      {
                  strcat(s1,s3);
       }
      puts(s1);
      return 0;
}
int main()
{
	char str[101],a[101],b[101];
	gets(str);
	char danci[101][101];
	int i,k,n,len;
	k=0;
	n=0;
	len=strlen(str);
	for(i=0;i<len;i++){
		if(str[i]!=' '){
			danci[n][k]=str[i];
			k++;
		}
		else{
			danci[n][k]='\0';
			n++;
			k=0;
		}
	}
	danci[n][k]='\0';
	scanf("%s",a);
	scanf("%s",b);
	int e;
	for(i=0;i<n+1;i++){
		if(strcmp(danci[i],a)==0){
			strcpy(danci[i],b);
		}
	}
	for(i=0;i<n;i++){
		printf("%s ",danci[i]);
	}
	printf("%s",danci[n]);
return 0;
}
int main(){
	char sz[100],zfc[20][20],a[20],b[20];
	gets(sz);
	scanf("%s",a);
	scanf("%s",b);
	int i,j=0,k=0;
	for(i=0;i<=strlen(sz);i++){
		if(sz[i]!='\0'&&sz[i]!=' '){
		  zfc[j][k]=sz[i];
		  k++;
		}
		if(sz[i]=='\0'||sz[i]==' '){
		 zfc[j][k]='\0';
		 j++;
		 k=0;
		}
	}
    for(i=0;i<=j;i++){
		if(strcmp(zfc[i],a)==0){
		strcpy(zfc[i],b);
		}
	}
	printf("%s",zfc[0]);
	for(i=1;i<j;i++){
	printf(" %s",zfc[i]);
	}
	return 0;
}
int main()
{
	char a[100][20];
	char b;
	char t[100],h[100];
	int i,g=0,result;
	for(i=0;;i++){
		scanf("%s",a[i]);
		scanf("%c",&b);
		g++;
		if(b==10)
			break;
	}
	scanf("%s",t);
	scanf("%s",h);

	for(i=0;i<g;i++){
		result=strcmp(t,a[i]);

		if(result==0){
			strcpy(a[i],h);
		}
	}
	for(i=0;i<g-1;i++){
		printf("%s ",a[i]);
	}
	i=g-1;
	printf("%s",a[i]);



	
	return 0;	
}
int main()
{
	char s[201],a[201],b[201],c[201];
	int i,j,la,lb,k,t,ls;
	gets(s);
    cin>>a>>b;
	la=strlen(a),lb=strlen(b),ls=strlen(s);
	for(i=0;i<100;i=i+1)
		c[i]=s[i];
	t=0;
	for(i=0;i<ls;i=i+1)
	{
		if(s[i]=='\0')
			break;
		for(j=0;j<la;j=j+1)
		{
			if(s[i+j]!=a[j])
				break;
		}
		if(j==la&&(s[i+la]==' '||s[i+la]=='\0')&&(s[i-1]==' '||i==0))
		{

			for(k=0;k<lb;k=k+1)
				s[i+k]=b[k];
			for(k=0;k<100;k=k+1)
				s[i+lb+k]=c[i+la+t*(la-lb)+k];
			t=t+1;
		}
	}
	cout<<s<<endl;
	return 0;
}
void main()
{
	char str[100]={""},sr[100]={""};
	char wrd[100]={""};
	char wod[100]={""};
	char wd[100]={""};
	int i,j=0,k,n,m;
	gets(str);
	gets(wrd);
	gets(wod);
	n=strlen(str);
	for(i=0;i<=n;i++)
	{
		if((*(str+i)!=' ')&&(*(str+i)!='\0'))
		{
			*(wd+j)=*(str+i);
			j=j+1;
		}
		else 
		{
			j=0;
			m=strlen(wd);
			if(strcmp(wd,wrd)==0)
			{
                for(k=i-m;k<i;k++)*(str+k)='\0';
				for(k=i;k<n;k++)
				{
					*(sr+k-i)=*(str+k);
					*(str+k)='\0';
				}
				strcat(str,wod);
				strcat(str,sr);
				n=strlen(str);
				for(k=0;k<(n-i);k++)*(sr+k)='\0';
				for(k=0;k<m;k++)*(wd+k)='\0';
			}
			else for(k=0;k<m;k++)*(wd+k)='\0';
		}
	}
	puts(str);
}
//***************
//????3.cpp *
//?  ?????*
//***************
int main()
{
	char s[101],a[101],b[101];//?????s,a,b
	char m[101],n[101];
	int ls=0,la=0,lb=0;//??ls,la,lb???????s,a,b???
	int i,j,k;
	cin.getline(s,101);
	cin.getline(a,101);
	cin.getline(b,101);//????s,a,b
	ls=strlen(s);
	la=strlen(a);
	lb=strlen(b);//????s,a,b???
	for (i=0;i<ls;i++)
	{
		if(s[i]!=a[0])continue;
		for(j=i+1;j<i+la;j++)
		{
			if(i!=0&&s[i-1]!=' ')
				break;
			if(s[j]!=a[j-i])
				break;
		}//??s?????a???????
		if (j==i+la)//??j?i+la-1?????????"break"???
		{
			for(k=0;k<i;k++)
				m[k]=s[k];
			m[i]='\0';
			strcpy(n,strcat(m,b));
			strcpy(s,strcat(n,s+(i+la)));//?????????s??????b?s?????????
			i=i+lb;
		}
	}
	cout<<s;
	return 0;
}
char str[100],c1[100],c2[100];
int pd(int l)
{
    int i,j,k;
	char temp;
	k=0; 
	for (i=0;i<1;i)
	{

		if (str[l]!=c1[k]) return 0;
	    k++;
	    temp=str[l+1]; 
	    if ((temp==' ') || (temp=='\t') || (temp=='\r') || (temp=='\n'))

		{
		  
			if (k==(strlen(c1))) return 1;
		   else return 0;
		}
	    l++;
	}

}

int main()
{
    char temp;
	int i,j,n,k,m;
	gets(str); gets(c1); gets(c2);
    n=strlen(str); 
	for (i=0;i<n;i++)
	{
	    if (i>0) temp=str[i-1];
		if (i==0) temp=0;
        if ((i==0) || (temp==' ') || (temp=='\t') || (temp=='\r') || (temp=='\n'))
		{
		    k=pd(i); m=0;
			if (k==1) 
			{
			    printf("%s",c2); i=i+strlen(c1)-1;
			}
		
		    else printf ("%c",str[i]);
		}
		else
		{
		        printf ("%c",str[i]); 
		}
	}
	printf("\n");
}
int iflet (char a)
{
	int test=0;
	if ((a>='a' && a<='z') || (a>='A' && a<='Z'))
		test=1;
	return test;
}

void main ()
{
	char ori[100], out[100], in[100];
	char *pori=ori, *pout=out, *pin=in, temp[20];
	int k;

	gets(ori);
	gets(out);
	gets(in);

	for (;*pori!='\0';)
	{
		if (*pori==' ')
		{
			printf("%c",*pori);
			pori++;
		}

		else if ((iflet(*pori)==1 && *(pori-1)==' ') || (pori=ori))
		{

			for (k=0;*(pori+k)!=' ' && *(pori+k)!='\0';k++)
				temp[k]=*(pori+k);
			temp[k]='\0';

			if (strcmp(temp,out)==0)
				printf("%s",in);

			else
				printf("%s",temp);

			pori=pori+k;
		}
		
	}
}
int main()
{
	char danci[100][100];
	char ch[100];
	char yaotihuan[100];
	char tihuan[100];
	int i;
	int j;
	int k;
	int len;
	gets(ch);
	for(j=0;j<100;j++)
	{
		for(k=0;k<100;k++)
			danci[j][k]='\0';
	}
	j=0;k=0;
	len=strlen(ch);
	for(i=0;i<len;i++)
	{
		if(ch[i]!='\n'&&ch[i]!=' ')
		{
			danci[j][k]=ch[i];
			k++;
		}
		else
		{
			if(ch[i]==' ')
			{
				j++;
				k=0;
			}
			if(ch[i]=='\n')
				break;
		}
	}
	


	scanf("%s",yaotihuan);
	scanf("%s",tihuan);
	for(i=0;i<=j;i++)
	{
		if(strcmp(danci[i],yaotihuan)==0)
			strcpy(danci[i],tihuan);
	}
	for(i=0;i<j;i++)
		printf("%s ",danci[i]);
printf("%s",danci[j]);
return 0;
}
void main()
{
	char s[100][100]={'\0'},a[100],b[100];
	int i=0,j,k;
	char (*ps)[100];

	do
	{
		scanf("%s",s[i]);
		i++;
	}
	while(getchar()!='\n');

	k=i;

	gets(a);
	gets(b);

	ps=&s[0];

	for(i=0;i<k;i++)
		if(strcmp(*(ps+i),a)==0)
		{
			for(j=0;*(*(ps+i)+j)!='\0';j++)
				*(*(ps+i)+j)='\0';
			strcpy(*(ps+i),b);
		}

		for(j=0;*(*(ps+0)+j)!='\0';j++)
			printf("%c",*(*(ps+0)+j));

		for(i=1;i<k;i++)
		{
			printf(" ");

			for(j=0;*(*(ps+i)+j)!='\0';j++)
				printf("%c",*(*(ps+i)+j));
		}



	

}
main()
{char string[100],word[50][15],subword[15],subed[15];
 gets(string);
 scanf("%s%s",subed,subword);
 char *p=string;
 int i=0,j;
 while(*p!='\0')
	{sscanf(p,"%s",word[i]);
     p+=strlen(word[i]);
	 i++;
	 if(*p==' ')p++;
	}
 for(j=0;j<i;j++)
	 if(strcmp(word[j],subed)==0)strcpy(word[j],subword);
 printf("%s",word[0]);
 for(j=1;j<i;j++)
	 printf(" %s",word[j]);
}
int main()
{
 char s[100],a[100],b[100],zj[100][100];
 int i=0,k,t=0;
 gets(s);
 gets(a);
 gets(b);
 while(s[i]!='\0')
 {
	  k=0;
	  while(s[i]!=' '&&s[i]!='\0')
	  {
		   zj[t][k]=s[i];
		   k++;
		   i++;
	  } 
	  zj[t][k]='\0'; //???????
	  while(s[i]==' ')
	  {
		   i++;
	  }
	  t++;
 }
  zj[t][k+1]='\0';
 for(i=0;i<t;i++)
 {

	  if(strcmp(zj[i],a)==0)
	  {
				   strcpy(zj[i],b);
	  }
 }
 for(i=0;i<t-1;i++)
 {
	printf("%s ",zj[i]);
 }
 printf("%s",zj[i]);//??????
 return 0;
}
int main()
{
    char s[101]={0},a[101]={0},b[101]={0},cmp[101]={0},mark[101]={0};
    int i,j,k;
    gets(s);
    gets(a);
    gets(b);
    for(i=0;i<=strlen(s)-strlen(a);i++)
    {
        k=0;
        if ((i!=0)&&(s[i-1]!=' ')) {
            continue;
        }
        for(j=0;j<strlen(a);j++)
            cmp[k++]=s[j+i];
        //printf("%s\n",cmp);
        if((strcmp(cmp,a)==0)&&((s[j+i]==' ')||(s[j+i]=='\n')||(s[j+i]=='\0'))) mark[i]=1;
        //if(strcmp(cmp,a)==0) mark[i]=1;
    }
    for(i=0;i<strlen(s);i++)
    {
        if(mark[i]==0)   printf("%c",s[i]);
        else
        {
            printf("%s",b);
            while(1)
            {
                if((s[i]==' ')||(s[i]=='\n')||(s[i]=='\0')) {i--;break;}
                else i++;
            }
        }
    }
    return 0;
}
int main()
{
	char a[100],b[100],c[100];
	gets(a);
	gets(b);
	gets(c);
	//printf("%s %s %s",a,b,c);
	for(int i = 0;i < strlen(a);i ++){
		if(a[i] == b[0] && (a[i-1] == ' ' || i == 0)  && (a[i+strlen(b)] == ' ' || i + strlen(b) == strlen(a))){
			int check = 0;
			for(int j = 0;j < strlen(b);j ++){
				if(a[j+i] != b[j]){
					check = 1;
					break;
				}
			}
			if(check == 0){
				printf("%s",c);
				i +=strlen(b) - 1;
				continue;
			}
		}
		printf("%c",a[i]);
	}
			
				return 0;
}
int main(int argc, char *argv[])
{
    char s[101],a[101],b[101],word[100][101];
    int n,k,i;
    gets(s);
    gets(a);
    gets(b);
    
    // ?s???????????words?
    n = 0; k = 0;
    for (i = 0; s[i]!=0; i++) {
        if (s[i] == ' ') {
            s[i] = '\0';
            strcpy(word[n], (s + k));
            n++;
            k = i + 1;
        }
    }
    strcpy(word[n], (s + k));
    n++;
    
    
    for(i=0;i<n;i++){  //?? 
                     if(strcmp(a,word[i])==0){
                                              strcpy(word[i],b);
                                              }
                                              }
                                              
     for(i=0;i<n-1;i++){ //?? 
                      printf("%s ",word[i]); 
                      }
                      
     printf("%s",word[n-1]);
    
    
      return 0;
}
int main()
{
	char s[100],a[100],b[100],c[50][100];
	int i,n=0,len1,len2,k=0;
	gets(s);
	gets(a);
	gets(b);
	len1=strlen(s);
	len2=strlen(a);
	for(i=0;i<len1;i++)
	{
		if(s[i]==' ')
		{
			s[i]='\0';
			strcpy(c[n],(s+k));
			k=i+1;
			n++;
		}
	}
	strcpy(c[n],(s+k));
	for(i=0;i<n+1;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;
}
int main()
{
	char ch[100][100],str1[100],str2[100];        //???????
	int i=0,j;                                   //?????
	do                                           //?????
	{
		cin>>ch[i];
		i++;
	}
	while(getchar()!='\n');
	cin>>str1>>str2;
	for(j=0;j<i;j++)
	{
		if(strcmp(str1,ch[j])==0)                //???????????????????
		{
			strcpy(ch[j],str2);
		}
	}
	for(j=0;j<i-1;j++)                           //??????
	{
		cout<<ch[j]<<" ";
	}
	cout<<ch[i-1];
    return 0;
}
int main()
{
	char str[101];
	gets(str);
	char a[101],b[101];
	scanf("%s%s",a,b);
	int n=strlen(str);
	int i,k=0,j=0;
	char c[101][101];
	for(i=0;i<n;i++)
	{
		if(str[i]==' ')
		{str[i]='\0';
	     strcpy(c[k],(str+j));
		 k++;
		 j=i+1;
		}
	}
	strcpy(c[k],(str+j));
	k++;
	for(i=0;i<k;i++)
	{
		if(i>0)
		{printf(" ");}
		if(strcmp(c[i],a)==0)
		{printf("%s",b);}
		else
		{printf("%s",c[i]);}
	}
	return 0;
}
int main()
{
	char a[100]={0};
	char c[100]={0};
	char d[100]={0};
	cin.getline(a,100);//??
	cin>>c;
	cin>>d;
	char b[100][100]={0};
	int i,num,k=0,p=0;
	num=strlen(a);
	a[num]='\n';
	for(i=0;i<num+1;i++)//??
	{
		
		b[k][p]=a[i];
		p++;
		if(a[i]==' '||a[i]=='\n')
		{
			b[k][p-1]=0;
			k++;
			p=0;
        }
		
	}
	int num1;
	num1=strlen(d);
	for(i=0;i<k+1;i++)
	{
		if(strcmp(b[i],c)==0)//??
		{
			for(p=0;p<100;p++)
			{
			  b[i][p]=0;
			}
			for(p=0;p<num1;p++)
			{
				b[i][p]=d[p];
			}
		}
	}
	for(i=0;i<k-1;i++)//??
	{
		cout<<b[i]<<" ";
	}cout<<b[k-1];
	
	return 0;
	
}
int main()
{
	char zfc[100];
	gets(zfc);
	char b[100][100];
	int l=strlen(zfc);
	int n=0,k=0,i;
	for(i=0;i<l;i++)
	{
		if(zfc[i]!=' '&&zfc[i]!=',')
		{
			b[n][k]=zfc[i];
			k++;
		}
		else
		{
			b[n][k]='\0';
			n++;
			k=0;
		}
	}
	b[n][k]='\0';
    char h[100],f[100];
	gets(h);
	gets(f);
	int j;
	for(j=0;j<n;j++)
	{
		if(strcmp(b[j],h)==0)
		{
			strcpy(b[j],f);
			printf("%s ",b[j]);
		}
		else
		{
			printf("%s ",b[j]);
		}
	}
	if(strcmp(b[n],h)!=0)
		printf("%s",b[n]);
	if(strcmp(b[n],h)==0)
		printf("%s",f);
	return 0;
}
void Input (char *a, char *b, char *c)
{
gets(a);
gets(b);
gets(c);
}
void Swap (char *str, char *FindWord, char *SwapWord)
{
 int j,s,k,i=0,SwapWordLength,strLength,FindWordLength,n; 
 char *p1,*p2;
 p1=str; 
 p2=FindWord; 
 strLength=strlen(str);     //length of the original sentence
 FindWordLength=strlen(FindWord); //length of the old word 
 SwapWordLength=strlen(SwapWord); //length of the new word 
 n=SwapWordLength-FindWordLength; 
 while(*p1!='\0'){
   if((*p1==*p2)&&(!isalpha(*(p1-1)))) 
   while((*p1==*p2)&&(*p2!='\0')) 
   { p1++; p2++; i++; }   //i: record how many chars has been read
  else { p1++; i++; } 
  if((*p2=='\0')&&(isalpha(*p1)==0))
  { 
  //find the old word in the sentence 
   if(n<0)
   { 
    j=i-FindWordLength;  //j: beginning place
    for(k=0; k<SwapWordLength; k++) 
     str[j++]=SwapWord[k]; //str[j++]==str[j], j++
    for(s=i; s<strLength; s++) 
     str[j++]=str[s]; 
    while(j<strLength) 
     str[j++]='\0'; 
    strLength=strlen(str); 
   } 
   else 
   { 
    for(s=strLength+n; s>i; s--) 
     str[s]=str[strLength--]; 
    j=i-FindWordLength; 
    for(k=0; k<SwapWordLength; k++) 
     str[j++]=SwapWord[k]; 
    strLength=strlen(str); 
   } 
  } 
  p2=FindWord; 
 } 
} 
void main(){
 char sen[MAX],old[LEN],new[LEN];
 Input(sen,old,new);
 Swap(sen,old,new);
 puts(sen);
}
int main()
{
	char s[100+1],a[100+1],b[100+1];
	char *ss[100];
	int i,n=0;
	gets(s);
	gets(a);
	gets(b);
	ss[n++]=s;
ss[0] = s;
n = 1;
for (i=0; s[i] != '\0'; i++) {
if (s[i] == ' ') {
s[i] = '\0';
ss[n] = &s[i+1];
n++;
}
}
	for(i=0;i<n;i++)
	{
		if(i>0)
		{
			printf(" ");
		}
		if(strcmp(ss[i],a)==0)
		{
			printf("%s",b);
		}
		else
		{
			printf(ss[i]);
		}
	}
	return 0;
}
int main()
{
	char str[4][500];
	int i , j , k , count = 0 , len[3] = {0};
	for (i = 0; i < 3; i ++)
	{
		cin.getline(str[i], 500);
		len[i] = strlen(str[i]);
	}

	for (i = 0; str[0][i] != 0; i ++)
	{
		if ((i == 0 || (i > 0 && str[0][i - 1] == ' ')) && ((str[0][i + len[1]] == ' ') || (str[0][i + len[1]] == 0)))
		{
			for (j = 0; j < len[1]; j ++)
				if (str[0][i + j] != str[1][j])
					break;
		
				if (j == len[1])
				{
					strcpy(str[3], str[0] + i + len[1]);
					strcpy(str[0] + i + len[2], str[3]);
					
					for(k = 0; str[2][k] != 0; k ++)
						str[0][i + k] = str[2][k];
				
				count ++;
			}
		}
		str[0][len[0] + count * (len[2] - len[1]) + 1] = 0;
	}
	
	cout << str[0] << endl;
	return 0;
}
void main()
{
	char s[1000],a[1000],b[1000];
	int ns,na,nb,i,j,k=0,m,flag,p[100];
	
    gets(s);
	gets(a);
    gets(b);
    ns=strlen(s);
	na=strlen(a);
	nb=strlen(b);
	
	for(i=0,j=0,k=0;i<na,j<ns;j++)
	{
		if(s[j]==a[i])
		{
			flag=j;
			i++;
			if(i==na && (s[j-na]<'A'||s[j+1]>'z'))
			{
				p[k]=flag;
				k++;
				i=0;
			}
		}
		else i=0;
	}
	
	if(k!=0)
	{
		for(m=0;m<k;m++)
		{
			p[m]=p[m]+m*abs(na-nb);
			ns=ns+m*abs(na-nb);
			if(na==nb)
			{
				for(i=0;i<na;i++)
					s[p[m]-na+1+i]=b[i];
				if(m==k-1)
    				printf("%s\n",s);
			}
			if(na>nb)
			{
				for(i=0;i<nb;i++)
					s[p[m]-na+1+i]=b[i];
				for(i=p[m]+1-na+nb;i<ns-na+nb;i++)
					s[i]=s[i+na-nb];
				if(m==k-1)
				{
					for(i=0;i<ns-na+nb;i++)
						printf("%c",s[i]);
					printf("\n");
				}
			}
			if(na<nb)
			{
				for(i=ns-1;i>p[m];i--)
					s[i+nb-na]=s[i];
				for(i=0;i<nb;i++)
					s[p[m]-na+1+i]=b[i];
				if(m==k-1)
				{
					for(i=0;i<ns+nb-na;i++)
						printf("%c",s[i]);
					printf("\n");
				}
			}
		}
	}
	
	else if(k==0) printf("%s\n",s);
}
int main()
{
	char a[N],b[N],c[N];
	gets(a);
	gets(b);
	gets(c);
	int i=0;
	while(i<strlen(a))
	{
		if(i==0)
		{
			if(a[i]==b[0])
			{
				int j;
			    for(j=0;j<strlen(b);j++)
				{
					if(a[i+j]!=b[j])
					{
						break;
					}
				}
				if(j==strlen(b))
				{
					printf("%s",c);
					i+=strlen(b);
				}
				else
				{
					printf("%c",a[i]);
					i++;
				}
			}
			else
			{
				printf("%c",a[i]);
					i++;
			}
		}
		else
		{
			if(a[i]==b[0]&&a[i-1]==' ')
			{
				int j;
				for(j=0;j<strlen(b);j++)
				{
					if(a[i+j]!=b[j])
					{
						break;
					}
				}
				if(j==strlen(b))
				{
					printf("%s",c);
					i+=strlen(b);
				}
				else
				{
					printf("%c",a[i]);
					i++;
				}
			}
			else
			{
				printf("%c",a[i]);
				i++;
			}
		}
	}
	return 0;
}
/************
 * ???????
 * ?????1000012923
 * ???2010.11.6
 * ?????????????
*************/



int main(){
	char s0[2001],s1[201],s2[201];
	cin.getline(s0,2000);
	cin.getline(s1,200);
	cin.getline(s2,200);
	int L0=0,L1=0,L2=0;
	while(s0[L0]!=0)L0++;//???????strlen???
	while(s1[L1]!=0)L1++;
	while(s2[L2]!=0)L2++;
	if(L1==0){
		cout<<s0;
		return 0;
	}
	for(int i=0;i<=L0-L1;i++){//??
		int is=0;
		for(int j=0;j<L1;j++)
			if(s0[i+j]!=s1[j]){
				is++;
				break;
			}
		if(is!=0)continue;//?????????
		if((i!=0&&s0[i-1]!=' ')||(s0[i+L1]!=' '&&s0[i+L1]!=0))continue;//???????????
		if(L1>L2)for(int j=i+L1;j<L0;j++)s0[j+L2-L1]=s0[j];//???????
		else for(int j=L0-1;j>=i+L1;j--)s0[j+L2-L1]=s0[j];
		for(int j=i;j<i+L2;j++)s0[j]=s2[j-i];
		L0+=L2-L1;//????
		i+=L2;
	}
	s0[L0]=0;
	cout<<s0;
}
void main()
{
   int i,j,w;
   char a[100]={0},b[100]={0},c[100]={0},d[100][100]={'\0'};
   gets(a);gets(b);gets(c);
   char *pc,*pa,*pb,(*pd)[100];
   pa=&a[0];pb=&b[0];pc=&c[0];pd=d;
   int k=0,ll=strlen(c);
   for(i=0;;i++)
   {
	   for(j=0;*(pa+k)!=' ';j++)
	   {
           if(*(pa+k)=='\0')
		   {
				(*(*(pd+i)+j))=(*(pa+k));
				break;
		   }
		   (*(*(pd+i)+j))=(*(pa+k));k++;
	   }
       (*(*(pd+i)+j))='\0';
	   	if ((*(pa+k))=='\0')
			break;
		k++;
   }
   int count=i+1;
   for(i=0;i<count;i++)
   {
	   int l=strlen(d[i]);
	   for(j=0;j<l+1;j++)
       {
			if ((*(*(pd+i)+j))==(*(pb+j)))
			{
				w=1;
				continue;
			}
			else
			{
				w=0;
				break;
			}
		}
		if (w)
		{
			for (k=0;k<ll;k++)
			{
				(*(*(pd+i)+k))=(*(pc+k));
			}
			(*(*(pd+i)+k))='\0';
		}
		else
			continue;
   }
   for (i=0;i<count;i++)
	{
		if (i>0)
			printf(" ");
		printf("%s",d[i]);
	}
	printf("\n");
}
int main()
{
	char str[10],substr[10];
	int first=1;
	while (scanf("%s%s",str,substr)!=EOF)
	{
		int i,max=-1,loc,len;
	//	scanf("%s%s",&str,&substr);
		len=strlen(str);
		for (i=0;i<len;i++) 
			if (str[i]>max) 
			{
				max=str[i];
				loc=i;
			}
		if (!first) printf("\n");
		
		for (i=0;i<=loc;i++) printf("%c",str[i]);
		for (i=0;i<strlen(substr);i++) printf("%c",substr[i]);
		for (i=loc+1;i<len;i++) printf("%c",str[i]);
		if (first) first=0;
		
	}
	return 0;
}
void main()
{
	//freopen("D:/input.txt","r",stdin);
	//freopen("D:/output.txt","w",stdout);
	int n,i,m;
    char a[14],b[4];
	char a1[14];
	char t;
	while (scanf("%s%s",a,b)!=EOF)
	{
		n=strlen(a);
		m=0;
		t=a[0];
		for(i=1;i<=n-1;i++)
			if(a[i]>t)
			{
				m=i;
				t=a[i];
			}
		for(i=m+1;i<=n-1;i++)
			a1[i+3]=a[i];
		a[m+1]=b[0];
		a[m+2]=b[1];
		a[m+3]=b[2];
		for(i=m+4;i<=n+2;i++)
			a[i]=a1[i];
		a[n+3]=0;
		printf("%s\n",a);
	}
}