semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
	char s[100],a[100],b[100];				//????????????????							
	int i,j,len1,len2,k[100]={0};
	gets(s);
	gets(a);
	gets(b);
	len1=strlen(s);										//??????
	len2=strlen(a);										//????????
	for(i=0;i<len1;i++)
	{
		for(j=i;j<i+len2;j++)
		{
			if(s[j]==a[j-i])
				k[i]=k[i]+1;						
			else break;
		}
		if(k[i]==len2)									/*?????????len2????????
														??????????????*/
		{
			if(i==0&&s[i+len2]==' ')					//???????????
			{
				cout<<b;
				i=i+len2-1;
			}
			else if(i==len1-len2&&s[i-1]==' ')			//??????
			{
				cout<<b;
				i=i+len2-1;
			}
			else if(i>0&&i<len1-len2&&s[i-1]==' '		//??????
				&&s[i+len2]==' ')
			{
				cout<<b;
				i=i+len2-1;
			}
			else cout<<s[i];							//???????
		}
		else cout<<s[i];								//???????
	}
	return 0;
}
int main()
{
    int i,j=0,m=0;
    char a[100],b[100],c[100];
    gets(a);
    scanf("%s%s",b,c);

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

		  if(a[i]=='\0')
			 break;

                         
    }
if(b[j]=='\0')
                      printf("%s",c);
                



    return 0;
}
void main()
{
char *s,*a,*b,*q,*temp1,*temp2;
int i,j=0,len,lenb,k,flag=1,head=0,tail=0;
s=(char *)malloc(100*sizeof(char));
a=(char *)malloc(100*sizeof(char));
b=(char *)malloc(100*sizeof(char));
temp1=(char *)malloc(200*sizeof(char));
temp2=(char *)malloc(200*sizeof(char));
gets(s);
gets(a);
gets(b);

len=strlen(s);
lenb=strlen(b);
for(i=0;i<len;i++)
{
	if(*(s+i)!=' ')
	{	
		if(flag==1)
		{
			head=i;
			flag=0;
		}
		*(temp1+j)=*(s+i);
		j++;
	}
	else
	{
		q=s+i;
		tail=i;
		flag=1;
		*(temp1+j)='\0';
		j=0;
		if(!strcmp(temp1,a)) 
		{
			strcpy(temp2,q);
			for(k=0;k<lenb;k++)
				*(s+head+k)=*(b+k);
			*(s+head+k)='\0';
			strcat(s,temp2);
		}
		strcpy(temp1,"\0");
		strcpy(temp2,"\0");
	}
}
*(temp1+j)='\0';
if(!strcmp(temp1,a)) 
		{
		
			for(k=0;k<lenb;k++)
				*(s+head+k)=*(b+k);
			*(s+head+k)='\0';
			
		}
puts(s);
}
void main()
{
	char s[100],c[100][100]={0},a[100],b[100]={0},e[100][100],f[100];
	int m,i,n=0,l=0,k=0,d[100]={0},j;
	gets(s);
	gets(a);
	gets(b);
	m=strlen(s);
	for(i=0;i<m;i++)
		if(s[i]==32)
          n++;
	for(i=0;i<=n;i++)
	{
       for(j=0;s[k]!=32;j++)
	   {
			   c[i][j]=s[k];
		       k++;
	   }
	   if(s[k]==32)
		   k++;
	}
	for(i=0;i<=n;i++)
		if(strcmp(c[i],a)==0)
		   strcpy(e[i],b);
		else
		   strcpy(e[i],c[i]);
    strcpy(f,e[0]);
	for(i=1;i<=n;i++)
	{
	    strcat(f," ");
	    strcat(f,e[i]);
	}
	printf("%s",f);
}
int main()
{
	int i,m,j,k=0;
	char s[100][100]={0},a[100],b[100],str[1000];
	char *ps[100],*pa,*pb;
	
	for(i=0;i<100;i++)
	*(ps+i)=s[i];
	pa=a;
	pb=b;
	gets(str);
	gets(pa);
	gets(pb);i=0;
	do{
	    for(j=0;*(str+k)!=' '&&*(str+k)!='\0';j++)
	    {*(*(ps+i)+j)=*(str+k);
		k++;}
		*(*(ps+i)+j)='\0';
		i++;k++;
	}while(*(str+k)!='\0');
	*(*(ps+i-1)+j)='\0';
	m=i;
	for(i=0;i<m;i++)
	  {if(!strcmp(*(ps+i),pa)) strcpy(*(ps+i),pb);}
	  
for(i=0;i<m;i++)
	{ if(i==0) 
		printf("%s",*(ps+i));
else printf(" %s",*(ps+i));
	}
	printf("\n");
	return 0;
}
int main(int argc, char* argv[])
{
	char s[100],a[100],b[100];
	int i,j=0,k,m;
    int n=1;
	char t[100];

	gets(s);
	gets(a);
	gets(b);
    
	//??????
	for(i=0;s[i]!='\0';i++)
	{
		if(s[i]==' ')n++;
	}

	//???????????
        for(i=0;s[i]!=' ';i++)
		{
		    t[i]=s[i];
		}
	    t[i]='\0';
		if(strcmp(t,a)==0){printf("%s",b);}
		else{printf("%s",t);}
		k=i+1;

	//?????
        for(i=1;i<n-1;i++)
		{
			m=0;
			for(j=k;s[j]!=' ';j++)
			{
				t[m]=s[j];
				m++;
			}
			t[m]='\0';
			if(strcmp(t,a)==0){printf(" %s",b);}
		    else{printf(" %s",t);}
		    k=j+1;
		}

		m=0;
		for(j=k;s[j]!='\0';j++)
		{
			t[m]=s[j];
			m++;
		}
		t[m]='\0';
		if(strcmp(t,a)==0){printf(" %s",b);}
	    else{printf(" %s",t);}

	return 0;
}
int main()
{
	char str[201],ch[201],ch1[201],str1[201];
	int s,s1,s2,i,j,g=0,k;
	cin.getline(str,201);
	cin.getline(ch,201);
	cin.getline(ch1,201);
	s=strlen(str);
	s1=strlen(ch);
	s2=strlen(ch1);
	strcpy(str1,str);
	for(i=0;i<s;i++)
	{
		g=0;
		if(str[i]==ch[0]&&((i==0)||(str[i-1]==' ')))
		{
			for(j=i;j<s1+i;j++)
			{
				if(str[j]==ch[j-i])
					g++;
			}
			if(g==s1&&(str[s1+i]==' '||str[s1+i]=='\0'))
			{
				for(k=0;k<i;k++)
				{
					str1[k]=str[k];
					
				}
				for(k=i;k<i+s2;k++)
				{
					str1[k]=ch1[k-i];
				}
				for(k=i+s2;k<=s+s2-s1;k++)
				{
					str1[k]=str[k+s1-s2];
				}
				for(k=0;k<=s+s2-s1;k++)
					str[k]=str1[k];
				s=s+s2-s1;
			}
		}
		
	}
	cout<<str1<<endl;

return 0;
}
main()
{
  /*char a[100][100];
  int i;
  for(i=0;;i++)
  {
	  scanf("%s",a[i]);
	  if(getchar()=='\n')break;
  }*/
	char *p[100],*a,*b;
	int i,j;
	for(i=0;;i++)
	{
		p[i]=(char *)malloc(100);
		scanf("%s",p[i]);
		if(getchar()=='\n')break;
	}
	a=(char *)malloc(100);
	scanf("%s",a);
    b=(char *)malloc(100);
	scanf("%s",b);
	for(j=0;j<=i;j++)
		if(strcmp(p[j],a)==0)p[j]=b;
	for(j=0;j<i;j++)
		printf("%s ",p[j]);
    printf("%s",p[i]);
}
char str[100][100];
char s[100],t[100];
char c;

int main()
{
    int cnt=0;
    while(1)
    {
         scanf("%s",str[cnt++]);
         if(getchar()=='\n')
               break;
    }
    scanf("%s",s);
    scanf("%s",t);
    for(int i=0;i<cnt;i++)
    {
            if(strcmp(str[i],s)==0)
                   strcpy(str[i],t);
    }
    for(int i=0;i<cnt-1;i++)
            printf("%s ",str[i]);
    printf("%s\n",str[cnt-1]);
    return 0;
}
char s[101],a[101],b[101],temp[101];
void judge(void)
{
	if(strcmp(temp,a)==0)
	{
		printf("%s",b);
	}
	else
	{
		printf("%s",temp);
	}
}
void check(void)
{
	int i,n=strlen(s),p=0,j;
	for(i=0;i<n;i++)
	{
		if(s[i]!=' ')
		{
			temp[p]=s[i];
			p++;
		}
		else
		{
			temp[p+1]='\0';
			judge();
			printf(" ");
			for(j=0;j<p+2;j++)
				temp[j]=0;
			p=0;
		}
	}
	temp[p+1]='\0';
	judge();
}
int main()
{
	gets(s);
	gets(a);
	gets(b);
	check();
	printf("\n");
	return 0;
}
int main()
{
	char a[101],b[101],c[101],q[101];
	int m,i,k,t,n,l,N,z=0;
	gets(a);	
	m=strlen(a);
	strcpy(q,a);

	scanf("%s%s",&b,&c);
	n=strlen(b);
	l=strlen(c);
 

	for(i=0;i<m;i++)
	{
		N=n;
	
			if((i==0)||(a[i-1]==32&&a[i]==b[0]&& (a[i+n]==32 || a[i+n]=='\0')) )
				for(k=i,t=0;t<n && k<m;k++,t++)
				{
					if(a[k]==b[t]) N--;
				}	
			if(N==0)
			{ z=1;
				
				if(n>=l)  
				{
					for(k=0,t=i;k<l;t++,k++)
						a[t]=c[k];
                    
						a[i+l]=' ';
					for(k=i;k<m-(n+1);k++)
					
						a[k+l+1]=q[k+n+1];
					a[m-(n-l)]='\0';
					


				}
	            if(n<l)  
				{
					for(k=0,t=i;k<l;t++,k++)
						a[t]=c[k];	
					a[i+l]=' ';
					for(k=i;k<m-(n+1);k++)
					
						a[k+l+1]=q[k+n+1];
					a[m+(l-n)]='\0';
					

				}
				m=strlen(a);
				strcpy(q,a);

			}
}
		
	
 	if(z==1 ) printf("%s",a);
    if(z==0&&N!=0)
	
		for(i=0;i<m;i++)
		printf("%c",q[i]);
	return 0;
}
void main()
{
	char s[100],c[100][100]={0},a[100],b[100]={0},e[100][100],f[100],*p;
	int m,i,n=0,l=0,k=0,d[100]={0},j;
	gets(s);
	gets(a);
	gets(b);
	m=strlen(s);
	for(p=s;p<s+m;p++)
		if(*p==32)
          n++;
	for(i=0;i<=n;i++)
	{
       for(j=0;*(s+k)!=32;j++)
	   {
			   *(*(c+i)+j)=*(s+k);
		       k++;
	   }
	   if(*(s+k)==32)
		   k++;
	}
	for(i=0;i<=n;i++)
		if(strcmp(c[i],a)==0)
		   strcpy(e[i],b);
		else
		   strcpy(e[i],c[i]);
    strcpy(f,e[0]);
	for(i=1;i<=n;i++)
	{
	    strcat(f," ");
	    strcat(f,e[i]);
	}
	printf("%s",f);
}
void main()
{
     char ini[101],former[101],latter[101],*p,*q=ini;
	 gets(ini);
	 gets(former);
	 gets(latter);
	 for(p=ini;;p++)
	 	 if(*p==' ')
		 {
			 *p='\0';
			 if(strcmp(q,former)==0) printf("%s ",latter);
			 else printf("%s ",q);
			 q=p+1;
		 }
		 else if(*p=='\0')
		 {
			 if(strcmp(q,former)==0) printf("%s\n",latter);
			 else printf("%s\n",q);
			 break;
		 }
	 
}
char sen[200],a[100],b[100],re[400];
int alen,blen;

int test(int n)
{
	int j=0;
	char *p1,*p2;
	p1=sen+n;
	p2=a;
	if(n!=0){
		if(*(p1-1)!=' ')return 0;}
	do
	{
		if(*p1!=*p2){
			j=1;
		}
			p1++;
			p2++;
	}while(p2-a<alen);
	if(*p1!=' '&&*p1!='\0')return 0;
	if(j==0)
		return 1;
	else return 0;
	
}

void main()
{

	int l;
	char *write=re;
	const char *read=sen;
	gets(sen);
	gets(a);
	gets(b);
	alen=strlen(a);
	blen=strlen(b);
	for(;read-sen<200;read++)
	{
		if(test(read-sen)==1)
		{
			
			for(l=0;l<blen;l++){*(write+l)=b[l];}
			write+=blen;
			read+=alen-1;
		}
		else{
			*write=*read;
			write++;}
	}

	printf("%s",re);
}
int main()
{
    char name[100],a[100],b[100];
    int k=0,j=0,n,i,p;
    char word[100][100];
    gets(name);
    gets(a);
    gets(b);
    n=strlen(name);
    for(i=0;i<n;i++)
    {
        if(name[i]!=' ')
        {
             word[k][j]=name[i];
             j++;
        }
        else
        {
              word[k][j]='\0';
              k++;
              j=0;
        }
    }
	word[k][j] = '\0';
	k++;

    for(p=0;p<k;p++)
    {
         if(strcmp(word[p],a)==0)
         {
              strcpy(word[p],b);
         }
    }
    for(p=0;p<k-1;p++)
    {
          printf("%s ",word[p]);
    }
    printf("%s",word[k-1]);
    return 0;
}
int main()
{
	char s[100];
	char a[100];
	char t[100];
	char b[100];
	int k,i,j,word;
	word=0;
	k=0;
	gets(s);
	gets(a);
	gets(b);
	int len;
	len=strlen(s);
	for(i=0;i<len;i++)
	{
		if(s[i]==' ')
		{word=0;}
		else if(word==0)
		{  k++;
		word=1;}
	}
	int A=0;
	int n;
	int m=0;
	for(j=0;j<k;j++)
	{
		for(i=A,n=0;i<len;i++,n++)
		{
			if(s[i]!=' ')
			{t[n]=s[i];}
			if(s[i]==' ')
			{t[n]='\0';
			 A=i+1;
			 break;}
		}
		if(i==len)
		{ t[n]='\0';}
		
		if(strcmp(t,a)==0)
		{strcpy(t,b);}
		m++;
		if(m!=k)
		{
			printf("%s ",t);
		}
		if(m==k)
		{printf("%s\n",t);}
	}
	return 0;
}
int main()
{
    char s[100],a[100],b[100],t[100][100];
    int k=0,y=0;
    gets(s);
    gets(a);
    gets(b);
    for(int i=0;s[i]!='\0';i++)
    {
         if(s[i]==' ')
         {
             t[k][i]='\0';
             k++;
             y=i+1; 
          }
          else
            t[k][i-y]=s[i];
     }
     for(int j=0;j<=k;j++)
     {
          if(strcmp(t[j],a)==0)
                strcpy(t[j],b);
      }
     for(int x=0;x<k;x++)
         printf("%s ",t[x]);
     printf("%s",t[k]);
     return 0;
}
int main ()
{
	char s[10000],a[101],b[101];
	int l0,l1,l2,i,j,k,counter;
	
	gets(s);
	gets(a);
	gets(b);
	
	l0=strlen(s);
	l1=strlen(a);
	l2=strlen(b);
	
	i=0;
	if (s[i]==a[0])
	{
		counter=0;
		for (j=i+1;j<i+l1;j++){
			if (s[j]!=a[j-i])
				counter++;}
		if (s[i+l1]!=' '&&s[i+l1]!='\0')
			counter++;
		if (counter==0)
		{
			if (l1>=l2)
			{
				for (j=i;j<i+l2;j++)
					s[j]=b[j-i];
				for (j=i+l1;j<=l0;j++)
					s[j-(l1-l2)]=s[j];
			}
			if (l2>l1)
			{
				for (j=l0;j>=i+l1;j--)
					s[j-(l1-l2)]=s[j];
				for (j=i;j<i+l2;j++)
					s[j]=b[j-i];
			}
		}
	}
		
		for (i=1;i<l0;i++)
		{
			if (s[i]==a[0])
			{
				counter=0;
				for (j=i+1;j<i+l1;j++){
					if (s[j]!=a[j-i])
						counter++;}
				if (s[i+l1]!=' '&&s[i+l1]!='\0')
					counter++;
				if (s[i-1]!=' ')
					counter++;
				if (counter==0)
				{
					if (l1>=l2)
					{
						for (j=i;j<i+l2;j++)
							s[j]=b[j-i];
						for (j=i+l1;j<=l0;j++)
							s[j-(l1-l2)]=s[j];
					}
					if (l2>l1)
					{
						for (j=l0;j>=i+l1;j--)
							s[j-(l1-l2)]=s[j];
						for (j=i;j<i+l2;j++)
							s[j]=b[j-i];
					}
					l0+=l2-l1;
				}
			}
		}
		cout<<s<<endl;
	}
int main()
{
	char str[101],str1[101],str2[101];
	gets(str);
	gets(str1);
	gets(str2);
	int i,len=strlen(str),n=0;
	char *p[101];
	p[n]=str;
	for(i=0;i<len;i++)
	{
		if(str[i]==' ')
		{
			str[i]=0;
			p[++n]=&str[i+1];
		}
	}
    for(i=0;i<=n;i++)
	{
		if(strcmp(p[i],str1)==0)
		{
		    printf("%s",str2);
		}
		else
			printf("%s",p[i]);
		if (i != n) printf(" ");
	}
	return 0;
}
int main()
{
	char s[100],a[100],b[100],c;
	int i,j,k,flag=1;	
	int count=0;
	memset(a,0,sizeof(a));
	memset(s,0,sizeof(s));
	memset(b,0,sizeof(b));
	cin.getline(s,100);
	cin.getline(a,100);
	cin.getline(b,100);
	

   

	for(i=0;i<=strlen(s);i++)
	{
		flag=1;
		if(s[i] || s[i+1])
		{
		if(s[i-1]==32 || i==0)
		{
		for(j=0;a[j]!=0;j++)
		{
			if(s[i+j]==a[j])
			continue;
			else{
				flag=0;
				break;
			}
		}
		if(flag==1)
		{
			i+=j-1;
			for(k=0;b[k]!=0;k++)
			{
			cout<<b[k];
			}
			

		}
		else
		{
			if(s[i]==0)
			{
				cout<<" ";
			}
			else
			
			cout<<s[i];
		}
		}

		
		
		else cout<<s[i];  
		}
		
	}
	
	

			
	
		


	return 0;
}
int main()
{
    int n=0, i, j, len1, len2, count=0, sum=0;
    char str[100][100];
    while(cin>>str[++n])
      if(str[n][0]=='0')
       break;
    n--;
    //cout<<str[n-1]<<endl<<str[n]<<endl;
    for(i=1;i<n-1;i++)
    {
      if(i!=1) cout<<" ";
      if(strcmp(str[i],str[n-1])==0)
        cout<<str[n];
      else
        cout<<str[i];
    }
    cout<<endl;
    return 0;
}
void main()
{
	char a[100],b[100],c[100],*d,*e,*f;
	int al,bl,cl,i,j,k;
	gets(a);gets(b);gets(c);
	al=strlen(a);bl=strlen(b);cl=strlen(c);
	d=&a[0];e=&b[0];f=&c[0];
	
		for(i=0;i<al;i++)
	{
        for(j=0,k=i;(*(d+i-1)==' '||i==0)&&j<bl&&*(d+k)==*(e+j);j++,k++){}
		if(j==bl)
		{break;}
	}
		if(j!=bl)
		goto line;

	for(j=0;j<al-bl-i;j++)
	{
		*(d+i+j)=*(d+i+j+bl);
	}
	al=al-bl;
	for(j=al-1;j>=i;j--)
	{
		*(d+j+cl)=*(d+j);
	}
	for(j=i,k=0;j<cl+i;j++,k++)
	{
		*(d+j)=*(f+k);
	}
	al=al+cl;
	*(d+al)='\0';
	


	for(i=i+cl;i<al;i++)
	{
        for(j=0,k=i;(*(d+i-1)==' '||i==0)&&j<bl&&*(d+k)==*(e+j);j++,k++){}
		if(j==bl)
		{break;}
	}
	if(j!=bl)
		goto line;
	for(j=0;j<al-bl-i;j++)
	{
		*(d+i+j)=*(d+i+j+bl);
	}
	al=al-bl;
	for(j=al-1;j>=i;j--)
	{
		*(d+j+cl)=*(d+j);
	}
	for(j=i,k=0;j<cl+i;j++,k++)
	{
		*(d+j)=*(f+k);
	}
	al=al+cl;
	*(d+al)='\0';
	
line:	puts(a);

}
void main()
{char a[100]={'\0'},b[100]={'\0'},c[100]={'\0'},d[100]={'\0'};int h,i,j,k,m,n,r;
gets(a);
gets(b);
gets(c);
m=strlen(b);
n=strlen(c);
for(h=0,i=0;*(a+i)!='\0';)
{if( (*(a+i)==*b)&& ( (i>=1&&*(a+i-1)==' '&& (*(a+i+m)==' '||*(a+i+m)=='\0') )||(i==0&& (*(a+i+m)==' '||*(a+i+m)=='\0')) ) )
 {r=i;
   for(j=0;j<m;j++)
	   if(*(a+r+j)!=*(b+j)) break;
	   if(j==m) {for(k=0;k<n;k++) {*(d+h)=*(c+k);h++;i++;} i=i+m-n; 
 continue;}
 }
 *(d+h)=*(a+i);
 h++;i++;}
puts(d);}
int main()
{
	char c[100],s[100],d[100],e[30][30];
	int m=0,n=0,l,i;
	gets(c);
	l=strlen(c);
	gets(s);
	gets(d);
	for(i=0;i<(l+1);i++)
	{
		e[m][n]=c[i];
		n++;
		if(c[i]==' ')
		{
			e[m][n-1]=0;
			m++;
			n=0;
		}
	}
	for(i=0;i<=m;i++)
		if (strcmp(s,e[i])==0) strcpy(e[i],d);
	printf("%s",e[0]);
	for(i=1;i<=m;i++)
		printf(" %s",e[i]);


}
int main()
{
	char s[100],a[100],b[100],d[100][100];
	int i,j,w,m,k=0;
	gets(s);
	gets(a);
	gets(b);
	w=strlen(s);
	for(i=0,j=0;i<w+1;j++,i++)
	{
		if(s[i]!=' '&&s[i]!=0)
		{
			d[k][j]=s[i];
		}
		else
		{
			d[k][j]=0;
			k+=1;
			j=-1;
		}	
	}
    for(i=0;i<k;i++)
	{
		if(strcmp(d[i],a)==0)
		{
			strcpy(d[i],b);
		}
	}
	for(i=0;i<k-1;i++)
	{
		printf("%s ",d[i]);
	}
	printf("%s",d[k-1]);
	return 0;
}
int main()
{
	char str[100], word[100][100]={0}, a[100], b[100];
	int i, j, k=0, k1=0, k2=0, sl;
	gets(str);
	gets(a);
	gets(b);
	sl=strlen(str);
	for(i=0;i<sl;i++){
		if(str[i]==' '||i==sl-1){
			for(j=k;j<i;j++,k2++)
				word[k1][k2]=str[j];
			if(i==sl-1)
				word[k1][k2]=str[i];
			k1++;
			k2=0;
			k=i+1;
		}
	}
	for(i=0;i<k1;i++){
		if(strcmp(word[i], a)==0)
			strcpy(word[i], b);
	}
	for(i=0;i<k1;i++){
		if(i!=0)
			printf(" ");
		printf("%s", word[i]);
	}
	return 0;
}
void main()
{   
	char s0[101],s1[101],s2[101],a[100][21];
	int i=0,j=0,k=0;
    gets(s0);
	gets(s1);
	gets(s2);
    
	for(i=0,j=0;i<strlen(s0);i++)
		if(s0[i]!=' ')
		a[j][k]=s0[i],k++;
		else
		a[j][k]='\0',j++,k=0;
     
	a[j][k]='\0';
    for(i=0;i<=j;i++)
		if(strcmp(a[i],s1)==0)
			if(k){
			printf("%s",s2);
			k=0;}
			else
            printf(" %s",s2);
		else
			if(k){
			printf("%s",a[i]);
			k=0;}
			else
			printf(" %s",a[i]);



	
}
int main(){
	char s[101],a[101],b[101];
    gets(s);
    gets(a);
    gets(b);
    int i,j,c=0,d=0,e=0,f,k,l,len1,len2;
    len1=strlen(s);
    len2=strlen(a);
    for(i=0;i<len1;i++){
		if(s[i]==a[0]&&(s[i-1]==' '||i==0)){
			d=0;
			for(j=1;j<len2;j++){
				if(s[j+i]==a[j])
				d+=1;
			}
		    
		    if(d==len2-1){
				e+=1;
			    s[i]='\0';
			    f=0;
			    for(k=0;k<i;k++){
					if(s[k]=='\0')
						f+=1;
					if(f==e-1){
						if(k==0){
					    for(l=k;l<i;l++)
							printf("%c",s[l]);
					     break;
						}
						else{
						for(l=k+len2;l<i;l++)
							printf("%c",s[l]);
					     break;
						}	
							
			        }
				}
				printf("%s",b);
	        }		   
		}
	}
	if(e!=0){
	for(i=0;i<len1;i++){
		if(s[i]=='\0')
		c+=1;
		if(c==e){
			for(j=i+len2;j<len1;j++)
			printf("%c",s[j]);
			break;
		}
	}
    }
    else
    puts(s);
				



	
	
	
	    
				return 0;
	}
int main()
{
 char a[100][100]={'\0'};
 int i,j=0,k;
 for(i=0;i<100;i++) {
   j+=scanf("%s",a[i]);
   if(a[i][0]<2) break;}
 for(i=0;i<100;i++) if(strcmp(a[i],a[j-1])==0) strcpy(a[i],a[j]);
 for(i=0;i<j-2;i++) printf("%s ",a[i]);
 printf("%s",a[j-2]);
 return 0;
}
int main()
{
	char s[101],a[101],b[101];
	char s1[101][101];
	int i,j,k;
	k=0;j=0;i=0;
	int tag=0;
	gets(s);
	gets(a);
	gets(b);
	while(s[i]!='\0')
	{
		s1[j][k]=s[i];
		k++;
		if(s[i]==' ')
		{
		   s1[j][k-1]='\0';
		   j++;
		   k=0;
		}
		i++;
	}
	s1[j][k]='\0';
	for(i=0;i<=j;i++)
	{
		if(strcmp(s1[i],a)==0)
			strcpy(s1[i],b);
	}
	for(i=0;i<j;i++)
	{
		printf("%s ",s1[i]);
	}
	printf("%s",s1[i]);
	return 0;
}
int main()
{
	int i,a1,s1,p,d1,e1,b1;
	char s[100],a[100],b[100],c[100],d[100],e[100],f[100],g[100];
	gets(s);
	gets(a);
	gets(b);
	a1=strlen(a);
	s1=strlen(s);
	b1=strlen(b);
	for(i=0;i<s1;i++)
	{
		
		for(p=0;p<a1;p++)
			c[p]=s[i+p];
		c[a1]=0;
	
		if(strcmp(c,a)==0)
		{
			if((i==0 && s[a1]==32) || (s[i-1]==32 && s[a1+i]==32))
			{
				for(d1=0;d1<(s1-i-a1);d1++)
				d[d1]=s[d1+a1+i];
			d[s1-i-a1]=0;
			for(e1=0;e1<i;e1++)
				e[e1]=s[e1];
			e[i]=0;
			strcat(e,b);
			strcat(e,d);
			strcpy(s,e);	
			s1=strlen(s);
			i=i+b1-a1;
			}
		}
	}
	printf("%s",s);

	return 0;
}
void main()
{
  int n,i,j=0;char x,y,z,m=0;
  char a[100];
  char b[100][100];
  char c[100];
  char d[100];
  gets(a);
  scanf("%s",&c);
  scanf("%s",&d);
  n=strlen(a);
  for(i=0;i<n;i++)
   {
    if (a[i]==' ') {j++;m=0;}
    else {b[j][m]=a[i];m++;}     
    }
  for(i=0;i<j+1;i++)
    {
      if (strcmp(b[i],c)==0) strcpy(b[i],d);
     }
  for(i=0;i<j;i++)
   printf("%s ",b[i]);
   printf("%s",b[i]);
  
}
void main()
{
	char *p,*a,*b,*t1,*t2,*t3;
	int i,j,k,r,n0,n1,n2,n,m;
	p=(char*)malloc(200*sizeof(char));
	a=(char*)malloc(100*sizeof(char));
	b=(char*)malloc(100*sizeof(char));
    t1=(char*)malloc(100*sizeof(char));
    t2=(char*)malloc(100*sizeof(char));
    t3=(char*)malloc(300*sizeof(char));
	
	gets(p);
	gets(a);
	gets(b);
	n=strlen(p);
	//strcpy(t1," ");
	m=0;
	for(i=0,k=0;i<n;i++)
	{
		//printf("i=%d\n",i);
		r=0;
		if((*(p+i)==' ')||(i==0))
		{
			r=1;
		    if(i!=0) n1=i+1;
			else n1=i;
		}
		//printf("%d %d\n",r,n1);
		if(r==1)
		{
			for(i=n1,j=0;(*(p+i)!=' ')&&(*(p+i)!='\0');i++,j++)
			{
				*(t1+j)=*(p+i);
			}
			i=i-1;
			
			*(t1+j)='\0';

		}
		//puts(t1);
		n2=i+1;
		if(strcmp(t1,a)==0)
		{
			if(n2!=n) printf("%s ",b);
			else printf("%s",b);
			m=1;
			
		}
		else 
		{
			if(n2!=n)printf("%s ",t1);
			else printf("%s",t1);
			strcpy(t1," ");
		}

	}
	
}
int main(int argc, char* argv[])
{
	char a[101],t[101],b[101],c[101];
	gets(a);
    gets(b);
	gets(c);
	int i,j=0;
	for(i=0;a[i]!='\0';i++,j++)
	{
		if(a[i]!=' ')
			t[j]=a[i];
		if(a[i]==' ')
		{
			t[j]='\0';
			if(strcmp(t,b)==0)
			{
				strcpy(t,c);
			    printf("%s ",t);	
			}
			else printf("%s ",t);
			j=-1;
		}
	}
	t[j]='\0';
    if(strcmp(t,b)==0)
	{
		strcpy(t,c);
		printf("%s",t);	
	}
	else printf("%s",t);
	return 0;
}
void main()
{
	char a[1000][1000]={1},b[100],c[100],d;
	int i,n=0;
	for(i=0;;i++)
	{
		scanf("%s%c",&a[i],&d);
		n++;
		if(d=='\n')
			break;
	}
	scanf("%s",&b);
	scanf("%s",&c);
	for(i=0;i<n;i++)
	{
		if(strcmp(a[i],b)==0)
			printf("%s",c);
		else
			printf("%s",a[i]);
		if(i==n-1)
		    printf("\n");
	    else      
		    printf(" ");
	}
}
int main()
{
	char str[100],str1[20][20]={'\0'},str2[20],str3[20];
	int num=0,j=0,i;
	cin.getline(str,100);
	cin.getline(str2,20);
	cin.getline(str3,20);
	for(i=0;i<strlen(str);i++)
	{
		if(str[i]!=' ')
		{
		str1[num][j++]=str[i];
		}
		if(str[i]==' ')
		{
			num++;
			j=0;
		}
	}
	num=num+1;
	for(i=0;i<num;i++)
	{
		if(strcmp(str1[i],str2)==0)
		{
			strcpy(str1[i],str3);
		}
	}
	for(i=0;i<num-1;i++)
	{
		cout<<str1[i]<<" ";
	}
	cout<<str1[i]<<endl;
	return 0;
}
void main(){
    char sour[100], result[100];
    char a[20], b[20],c[20];     
    char *p = NULL, *q = NULL;
    int i, k = 0;
	int l_1,l_2,l_3,l_4,l_5,x=0;
    int flag;
	int j;
    int word_length=0;
	int flag_2=0;
    gets(sour);
    gets(a);
    gets(b);
	l_1=strlen(sour);
	l_2=strlen(a);
	l_3=strlen(b);
    p = sour;
    q = sour;
	for(j=0;j<l_1-l_2+1;)
	{
		for(i=0;i<l_2;i++,j++)
		{
			c[i]=sour[j];
		}
		j=x;
		x++;
		if(strcmp(c,a)==0)
			flag_2++;
	}


    while(*p != '\0')
	{
		if ( *p==' ' || *(p+1)=='\0')
		{
          flag = 1;
          if ( *p== ' ') word_length = p - q;
          else word_length = p - q + 1;
          if ( word_length == strlen(a) ) {
             for ( i=0; i<strlen(a); i++) {
                if ( q[i]!= a[i] ){
                   flag = 0;
                   break;
                }
             }
          }
          else flag = 0;

          if ( flag == 1 ) 
		  {
             for (i=0; i < strlen(b); i++)
             {
                result[k++] = b[i];
             } 

          }
          else {
             while ( q != p) {
                result[k++] = *q++;               
             }
	
          }
          if ( *p==' ') result[k++] = ' ';
          else result[k++] = *p;

          q = p + 1;
       }
       p++;   
    }

	result[k] = '\0';
	l_4=strlen(result);
	l_5=l_1-l_2+l_3;
	if((l_4!=l_5))
	{
		if(flag_2==1)
			result[k-1]='\0';
	}
    puts(result);
}
int main(){
   char s[101],str[200][20],rep[20],sub[20];
   int i,sum=0,a=0,b=0,max=0,min=0;
   gets(s);
   gets(sub);
   gets(rep);
   for(i=0;s[i]!='\0';i++){
		if(s[i]==' '){
			str[a][b]='\0';
			a++;
			b=0;
		    sum++;
		}
		else{
			str[a][b]=s[i];
             b++;
		}
	} 

	str[a][b]='\0';
		for(a=0;a<=sum;a++){
			if(strcmp(str[a],sub)==0){
			   strcpy(str[a],rep);
			}
			else{
			   continue;
			}
		}
		for(a=0;a<sum;a++){
		    printf("%s ",str[a]);
		}
	    printf("%s",str[sum]);
return 0;
}
void main()
{
    char s[100],a[100],b[100],words[100][100];
    int i,k=0,n=0;
    gets(s);
    gets(a);
    gets(b);
    	for (i = 0; s[i] != 0; i++) {
        if (s[i] == ' ') {
            s[i] = '\0';
            strcpy(words[n], (s + k));
            n++;
            k = i + 1;
        }
    }
	strcpy(words[n], (s + k));
    n++;
    for(i=0;i<n-1;i++)
    {
    	if(strcmp(words[i],a)==0)
    	{
    	printf("%s ",b);
    	}
    	else 
    	{
    	printf("%s ",words[i]);
    	}
    }
    if(strcmp(words[n-1],a)==0)
    	{
    	printf("%s",b);
    	}
    	else 
    	{
    	printf("%s",words[n-1]);
    	}
}
void main()
{
	char str1[1000],str2[100],str3[100],str4[100],str5[2]=" ",str[100]="";
	int i,k=0;
	gets(str1);
	gets(str2);
	gets(str3);
	for(i=0;str1[i]!='\0';i++)
	{
		if(str1[i]!=' ')
		{
			str4[k]=str1[i];
			k=k+1;
		}
		else
		{
			str4[k]='\0';
			k=0;
			if(strcmp(str4,str2)==0)
				strcat(str,str3);
			else
				strcat(str,str4);
			strcat(str,str5);
		}
	}
	str4[k]='\0';
    if(strcmp(str4,str2)==0)
				strcat(str,str3);
			else
				strcat(str,str4);
		printf("%s",str);
}