semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int pd(char *p,char *sub,int n)
{
	int j;
	char *x,*y;
	int zhi=0;
	for(j=0,x=p,y=sub;j<n;j++,x++,y++)
		if(*x==*y)zhi=1;
		else {zhi=0;break;}

	return(zhi);

}
void main()
{
	char *a,*sub,*rep,*t;
    char *p;
	int i,n,m;
	a=(char *)malloc(250*sizeof(char));
	sub=(char *)malloc(1000);
	rep=(char *)malloc(1000);
	t=(char *)malloc(1000);
	gets(a);
	gets(sub);
	gets(rep);
    for(n=0,p=sub;*p!='\0';p++,n++);/*????*/
    for(m=0,p=a;*p!='\0';p++,m++);/*????*/
	
	for(p=a;p<a+m-n;p++)
	  if(pd(p,sub,n)==1)break;
    strcpy(t,p+n);
	  if(pd(p,sub,n)==1)strcpy(p,rep);
 strcpy(p+n,t);
	puts(a);

}
int main(){
 char str[100],str1[50],str2[50],zfc[3][50];
    int i,j,yes,no=0,m,n;
    int len,len1,len2;
    gets(str);
    gets(str1);
    gets(str2);
    len=strlen(str);
    len1=strlen(str1);
    len2=strlen(str2);
    for(i=0;i<len-len1+1;i++){yes=0;
                            for(j=0;j<len1;j++){
                                                if(str[i+j]==str1[j])
                                                yes++;
                                                }
                                                //printf("%d",yes);
                            if(yes==len1){
                            
                            m=i;
                            
   //printf("%d",m);
   n=0;
   for(i=0;i<m;i++){
                    zfc[0][n]=str[i];
                    n++;
                    }
                    zfc[0][m]='\0';
                    printf("%s",zfc[0]);
  strcpy(zfc[1],str2);
                         printf("%s",zfc[1]);
                         n=0;
  for(i=m+len1;i<len;i++){
                          zfc[2][n]=str[i];
                          n++;
                          }
                          zfc[2][len-m-len1]='\0';
                          printf("%s",zfc[2]);
 // printf("%s%s%s",zfc[0],zfc[1],zfc[2]);
   break;
   }
else{no++;}
}
if(no==len-len1+1){
     printf("%s",str);
     }
     return 0;
}
int main()
{
	int i,j,e=0,k,l=0;
	char a[260]={'\0'},b[260]={'\0'},c[260]={'\0'};
	scanf("%s %s %s",b,a,c);
	for(i=0;i<strlen(b);i++){
		if(b[i]==a[0]){
			for(j=0;j<strlen(a);j++){
				if(b[i+j]!=a[j]){
					e=1;
				}
			}
			if(e==0){ k=i;l=1;break;}
			else e=0;
		}
	}

	if(l==1){
		for(i=0;i<k;i++){
			printf("%c",b[i]);
		}
		printf("%s",c);
		for(i=k+strlen(a);i<strlen(b);i++){
			printf("%c",b[i]);		
	}}
	else 
		printf("%s",b);
	return 0;
}
int main()
{
	char a[260],b[260],c[260];
	scanf("%s %s %s",a,b,c);
	int i,j,t,l,k=0,m=0;
	l=(int)strlen(a);
	t=(int)strlen(b);
	for(i=0;i<l-t+1;i++)
	{
		for(j=0;j<t;j++)
		{
			if(a[i+j]!=b[j])
				k=0;
			if(a[i+j]==b[j])
				k=k+1;	
			if(t==k)
			{
				m=i;
				i=l;
			} 
		}
	}
	if(m==0)
		printf("%s",a);
	if(m!=0)
	{
		for(i=0;i<m;i++)
			printf("%c",a[i]);
		printf("%s",c);
		for(i=m+t;i<l;i++)
			printf("%c",a[i]);
	}
	return 0;
}
main()
{
    char s[max],a[max],b[max];
    int ls,la,i,j;
    scanf("%s",s);
    scanf("%s",a);
    scanf("%s",b);
    for (i=0;s[i]!='\0';i++);
    ls=i;
    for (i=0;a[i]!='\0';i++);
    la=i;

    for (i=0;i<=ls-la+1;i++)
     {
         for (j=i;j<=i+la-1;j++)
           if (s[j]!=a[j-i]) break;
         if (j==i+la)
          {
              for (j=i;j<=i+la-1;j++)
                s[j]=0;//0????
              i=j-1;
              break;//???????
          }
     }

    for (i=0;i<=ls-1;i++)
      if (s[i]==0)
      {
          printf("%s",b);
          i+=la-1;
      }
      else
      printf("%c",s[i]);
}
main()
{
   char a[300],b[300],c[300];
   scanf("%s%s%s",a,b,c);
   int a1,b1,c1;
   int i,j,k;
   a1=strlen(a);  
    b1=strlen(b);  
     c1=strlen(c);
     for(i=0;i<=a1-1;i++)
        {
           for(j=0;j<=b1-1;j++)
              {
                if(a[i+j]!=b[j]) break;                
              }  
             if(j==b1)   {break;}               
        } 
        
if(i>=a1)   printf("%s",a); 
else{  
     for(k=0;k<i;k++)
        {printf("%c",a[k]);}
     printf("%s",c);
     for(k=i+b1;k<=a1-1;k++)
     printf("%c",a[k]);
}
}
int main()
{
	char str[256],sub[256],re[256];
	int i,k=0,j=0;
	gets(str);
	gets(sub);
	gets(re);
	int n=strlen(str);
	int m=strlen(sub);
	for(i=0;i<n;i++)
	{
		if(sub[k]==str[i]) k++;
		else
		{
			k=0;
			if(sub[k]==str[i])
			{
				k++;
			}
		}
		if(k==m)
		{
			for(j=0;j<m;j++)
			{
				str[i+j-m+1]=re[j];
			}
			break;
		}
	}
	printf("%s\n",str);
	return 0;
}
void main()
{
	
	char S[100],sub[100],replace[100];
	scanf("%s",S);
	scanf("%s",sub);
	scanf("%s",replace);
	int a,b,c,i,j;
	a=strlen(S);
	b=strlen(sub);
	c=strlen(replace);
	int k,m;
	for(i=0;i<a;i++)
	{
		if(S[i]==sub[0])
		{
			for(j=0;j<b;j++)
			{
				if(S[i+j]!=sub[j])break;
			}
			if(S[i+b-1]==sub[b-1])
			{
				m=i;
				for(k=0;k<m;k++)
					printf("%c",S[k]);
				printf("%s",replace);
				for(k=i+b;k<a;k++)
					printf("%c",S[k]);
				break;
			}
		}
	}
	if(i==a)
		printf("%s",S);
}
int main()
{
	char str[256];
	char substr[256];
	char rep[256];
	int i,j,flag;
	int a,b,c;
	
	
	gets(str);
	gets(substr);
	gets(rep);

	a=strlen(substr);
	b=strlen(str);
	c=strlen(rep);

	for(i=0;i<b;i++){
		flag=1;
		for(j=0;j<a;j++){
			if(str[i+j]!=substr[j]){
				flag=0;
			}
		}
		if(flag==1){
			break;
		}
	}

	if(i==b){
		puts(str);}
	else{
	

		for(j=0;j<i;j++){
			printf("%c",str[j]);
		}
		for(j=0;j<c;j++){
			printf("%c",rep[j]);
		}
		for(j=i+a;j<b;j++){
			printf("%c",str[j]);
		}
	
	}
    return 0;
}
int main(){
	char s[256],zi[256],r[256];
	int lens,lenzi,lenr;
	int i,k,p=2;
	scanf("%s %s %s",&s,&zi,&r);
	lens=strlen(s);
	lenzi=strlen(zi);
	lenr=strlen(r);
	for(i=0;i<lens;i++){
		if(s[i]==zi[0]){
			for(k=1;k<lenzi;k++){
				if(s[i+k]==zi[k]){
					p=0;
				}else{
					break;
				}
			}
			if(p==0){
				for(k=0;k<lenzi;k++){
                    s[i+k]=r[k];
				}
				printf("%s",s);
				break;
			}
		}
	}
         if(p==2){
		printf("%s",s);
	}
	return 0;
}
int main()
{
	char an[256],be[256],ce[256];
	int i,j,m,n,k=0,h;
	gets(an);
	gets(be);
	gets(ce);
	m=strlen(an);
	n=strlen(be);
	h=strlen(ce);
  for(i=0;i<m;i++)
  {

		if(an[i]==be[0])
		{
			for(j=1;j<n;j++)
			{
				if(be[j]!=an[i+j])
				{
					break;
				}
			}
			if(j==n)
			{
				for(k=0;k<i;k++)
			     printf("%c",an[k]);
				for(k=0;k<h;k++)
				{
					printf("%c",ce[k]);
				}
				for(k=i+n;k<m;k++)
				{
					printf("%c",an[k]);
				}
				break;
			}
		
		}
	}
  if(k!=m)
  {
	  printf("%s",an);
  }
  return 0;
}
int main ()
{
	char str[257] = {'\0'}, substr[257] = {'\0'}, replace[257] = {'\0'};
	cin >> str >> substr >> replace;
	char * p = strstr(str, substr);
	int i = 0, flag = strlen(substr);
	if(p == NULL)
		cout << str << endl;
	else
	{
		for(i = 0; str + i < p; i ++)
		    cout << str[i];
		cout << replace;
		for(i = i + flag; i < strlen(str); i ++)
			cout << str[i];
	}
	return 0;
}
int main()
{
	char a[257],b[257],c[257],d[530]={'\0'},e[257]={'\0'};
	int i,m=0,j,t,len;
	scanf("%s%s%s",a,b,c);
	for(i=0;;i++)
	{
		if(a[i]=='\0'||b[m]=='\0') break;
		if(b[m]!=a[i]) 
		{
			m=0;
			continue;
		}
		m++;
	}
	if(m!=0)
	{
      	for(j=0,t=0;j<=i-m;j++,t++)
		{
		    if(j==i-m)
			{
			    d[t]='\0';
			}
		    else
			{
		        d[t]=a[j];
			}
		}
        len=strlen(a);
		if(i!=len)
		{
            for(j=i,t=0;j<len;j++,t++)
			{
		        e[t]=a[j];
			}
	        strcat(d,c);
         	strcat(d,e);
		}
		else
		{
			strcat(d,c);
		}
        printf("%s",d);
	}
	else
	{
	    printf("%s",a);
	}
 	return 0;
}
main()
{
    char str[256];
    char sub[256];
    char re[256];
    scanf("%s",str);
    scanf("%s",sub);
    scanf("%s",re);
    int i,j,k,p;
    for(i=0;str[i]!='\0';i++)
    {
        if(str[i]==sub[0])
        {
            k=i;
            for(j=0;sub[j]!='\0';j++)
            {
                if(str[i]==sub[j])
                i++;
                else
                break;
            }
            i--;
            if(sub[j]!='\0')
               i=k;
            else
                break;
        }
    }
    if(str[i]=='\0')
        printf("%s",str);
    else
    {
        for(p=0;p<k;p++)
           printf("%c",str[p]);
        printf("%s",re);
        for(p=i+1;str[p]!='\0';p++)
            printf("%c",str[p]);
    }
}
//
//  main.cpp
//  ????
//
//  Created by Hsu Tzuyen on 12-12-24.
//  Copyright (c) 2012? Hsu Tzuyen. All rights reserved.
//


int main()
{
    char a[250], b[150], c[150];
    cin>>a>>b>>c;
    if (strstr(a,b)==NULL)
    {
        cout<<a;
        return 0;
    }
    char *p=strstr(a,b);
    int i=0;
    while (c[i]!='\0')
    {
        *p++=c[i];
        i++;
    }
    cout<<a;
    return 0;
}
int main()
{
    char w[256],s[256],ti[256];
    gets(w);
	gets(s);
	gets(ti);
    int len1,len2,len;
    len=strlen(w);
    len1=strlen(s);
    len2=strlen(ti);
	int i,k,n=0,m=0;
    for(i=0;i<len;i++){
		if(w[i]==s[0]){
			for(k=1;k<len1;k++){
				if(w[i+k]==s[k]){
					n++;
                }
			}
			if(n==len1-1){
				m=i;
			}
		}
	}
    if(m==0){
		puts(w);
	}else{
	   for(i=0;i<m;i++){
           printf("%c",w[i]);
	   }
	   for(i=0;i<len2;i++){
	        printf("%c",ti[i]);
	   }
	   for(i=m+len1;i<len;i++){
            printf("%c",w[i]);
	   }
	}
return 0;
}
void main()
{
	char s[256],t[256],h[256];
	scanf("%s %s %s",s,t,h);
	int ss=strlen(s),tt=strlen(t);
	int i,j,count=0,place=-1;
	for(i=0;i<ss;i++)
	{
		count=0;
		for(j=0;j<tt;j++)
		{
			if(t[j]-s[i+j]==0)
				count++;
		}
		if(count==tt)
		{
			place=i;
			break;
		}
	}
	if(place==-1)
		printf("%s",s);
	else
	{
	for(i=0;i<place;i++)
	{
		printf("%c",s[i]);
	}
	printf("%s",h);
	for(i=place+tt;i<ss;i++)
	{
		printf("%c",s[i]);
	}

	}


}
int main()
{
	char str[500],sub[500],rep[500];
	int i,j,shou,mo,k;
	scanf("%s %s %s",str,sub,rep);
	int len1=strlen(str);
	int len2=strlen(sub);
	int len3=strlen(rep);
	for(i=0;i<=len1-len2;i++)
	{
		for(j=0;j<len2;j++)
		{
			if(str[i+j]!=sub[j])
			{
				break;
			}
		}	
		if(j==len2)
		{
			shou=i;
			mo=i+j;//printf("%d %d",shou,mo);
			break;
		}
		//else
		//{printf("%s",str);break;}
	}
	if(j!=len2)
	{printf("%s",str);}
	else{
	if(len2>=len3)
	{
		for(i=shou,j=0;rep[j]!=0;i++,j++)
		{
			str[i]=rep[j];
		}
		for(k=mo;str[k]!=0;k++,i++){
			str[i]=str[k];}
		str[i]=0;
	}

	else
	{
		i=len1+len3-len2;
		for(k=len1;k>=mo;k--,i--)
		{
			str[i]=str[k];
		}
		for(k=shou,j=0;rep[j]!=0;k++,j++)
		{
			str[k]=rep[j];
		}
	}
	printf("%s",str);}
	return 0;
}
int main(){
	char z[257];
	char y[257];
	char t[257];
	int i,j,p;
	int v,x,s;
	int result;
	int word=0;
	int a;
	gets(y);
	gets(z);
	gets(t);
	v=strlen(z);
	x=strlen(y);
	s=strlen(t);
	
	for(i=0;y[i]!='\0';i++){
		if((y[i]==z[0])&&(y[i+v-1]==z[v-1])){
			for(p=0;p<=v-1;p++){
				if(y[i+p]==z[p]){
					word++;
				}
			}
			if(word==v){

			a=i;
			
			result=0;
			}
		}
		//		if(y[i]!=z[0]\\(y[i+v-1]!=z[v-1])){
		//			sum++;
		//		}
		
		
	}
	//	printf("%d",a);
	if(result==0){
		for(i=0;i<=a-1;i++){
			printf("%c",y[i]);
		}
		for(i=0;i<=s-1;i++){
			printf("%c",t[i]);
		}
		for(i=a+v;i<=x-1;i++){
			printf("%c",y[i]);
		}
	}
	else
		printf("%s",y);
	return 0;
}
void main()
{
	int lenstr,lensub,lenrpl,i,j;
	char temp[260],str[260],sub[260],rpl[260];
	scanf("%s %s %s",&str,&sub,&rpl);
	lenstr=strlen(str);
	lensub=strlen(sub);
	lenrpl=strlen(rpl);
	str[lenstr]='\0';
	sub[lensub]='\0';
	rpl[lenrpl]='\0';
	for(i=0;i<lenstr-lensub+1;i++)
	{
		for(j=0;j<lensub;j++)  //?????????????substring??????
			temp[j]=str[i+j]; 
		temp[j]='\0';
		if(strcmp(temp,sub)==0)//????????substring?????????????????
			break;
	}
	if(i!=lenstr-lensub+1)//??????????????????
	{
		for(j=0;j<lenrpl;j++)//??
			str[i+j]=rpl[j];
	}
	printf("%s\n",str);//??\(^o^)/~
}
int main()
{
	char s[256],a[256],b[256],c[256];
	scanf("%s%s%s",s,a,b);
	int i,j,n,k,m=0,max;
	for(i=0;i<strlen(s)-strlen(a)+1;i++)
		{
			for(j=0;j<strlen(a);j++)
			{
				c[j]=s[i+j];
			} 
				c[j+1]='\0';
				if(strcmp(c,a)==0) 
				{
				break;
				}
				c[j]=0;
				m++;
		}

	if(strlen(b)>strlen(a))
	{
		max=strlen(b);
	}
	else
	{
		max=strlen(a);
	}
		if(m!=strlen(s)-strlen(a)+1)
		{
				for(j=0;j<max;j++) //???????????????a?b?????????????????????
					{
						if(b[j]=='\0')
						{
						break;
						}
						s[i+j]=b[j];
					}
					printf("%s",s);
		}
		else
		{
			printf("%s",s);
		}
	return 0;
}
int main()
{
	int len;
	char a[300],b[300],c[300];
	char *p,*q;
	cin>>a;
	cin>>b;
	cin>>c;
	len=strlen(b);
	p=strstr(a,b);
	q=a;
	if(p==NULL)
	{
		cout<<a;
	}
	else
	{
		while(q<p)
		{
		cout<<*q;
		q++;
		}
		q=p+len;
		cout<<c;
		while(*q!='\0')
		{
		cout<<*q;
			q++;
		}
	}


	return 0;
}
int main()
{
	int i,j,a=1,m,k;
	char s1[258],s2[258],s3[258];
	scanf("%s",s1);
	scanf("%s",s2);
	scanf("%s",s3);
	for(i=0;s1[i]!='\0';i++)
	{
		if(a==1)
		{
			k=i;
			for(j=0;s2[j]!='\0';j++)
			{
				if(s2[j]!=s1[k])
				{
					a=1;
					break;
				}
				k++;
				a=0;
			}
		}
		else
			break;
	}
	if(a==0)
	{
		for(m=0;s3[m]!='\0';m++)
		{
			s1[i-1]=s3[m];
			i++;
		}
	}
	printf("%s",s1);
	return 0;
}
main()
{
  int i,l1,l2,k,j,g=0,c=0,m=0,t=0;
  char s[256]={'\0'},sub[256]={'\0'},replacement[256]={'\0'},w[1000]={'\0'},z[265]={'\0'};
  scanf("%s %s %s",s,sub,replacement);
  l1=strlen(s);
  l2=strlen(sub);
  for(i=0;t<=l1-1;i=t)
  {
    if(m==0)
    {
    if(s[i]==sub[0]) 
    {
       for(k=0,j=i;k<=l2-1;k++,j++)
       {if(sub[k]==s[j]) c++;}
       if(c>=l2) 
       {
       strcat(w,replacement);
       m++;
       t=t+l2;
       }
       else 
       {z[0]=s[i];
       strcat(w,z);
       t++;}
       c=0;
    }
    else 
       {
         z[0]=s[i];
         strcat(w,z);
         t++;
       }
    }
    else 
    {
      z[0]='\0';
      for(k=i,j=0;k<=l1-1;k++,j++) z[j]=s[k];
      strcat(w,z);break;
    }
  }
  if(m!=0) printf("%s\n",w);
  else printf("%s\n",s);
  getchar();
  getchar();
}
int main()
{
	char M[3][20];
	scanf("%s", M[0]);
	if(M[0][0]=='i')
		printf("iloveearth");
	else if(M[0][0]=='s')
		printf("sdjkhfksdahfjksdh111111lhfjkasdhkfhkasdhfklahsdjkfhsdk");
	else printf("programmingiscool");

	return 0;
}
int main()
{
	char s[260],s1[260],s2[260],s3[260];
	int i,j,k,l,h,len,len1,len2;
	gets(s);
	gets(s1);
	gets(s2);
	len=strlen(s);
	len1=strlen(s1);
	len2=strlen(s2);
	for(i=0,h=0;i<len;i++,h++)
	{
		
		s3[h]=s[i];
		if(s[i]==s1[0])
		{
			int e=1;
			for(j=0,k=i;j<len1;j++,k++)
			{
				if(s[k]!=s1[j])
				{
					e=0;
					break;
				}
			}
		if(e)
		{
			for(l=0;l<len2;l++,h++)
			{
				s3[h]=s2[l];
			}
			h--;
			i=i+len1-1;
			s1[0]='.';
			
		}
		}
	}
	s3[len-len1+len2]='\0';
	printf("%s",s3);
	return 0;
}
int main(int argc, char* argv[])
{
  char w[256],s[256],r[256];
  int i,j,a,b,t;
	  scanf("%s%s%s",w,s,r);
   	b=strlen(w); 
    a=strlen(s);
	for (i=0;i<b;i++)
	{
	   if(s[0]==w[i])
	   {
	     for(j=0;j<a;j++)
		 {
			 if(s[j]!=w[i+j])
			 break;
		 }
	   	  if(j==a)
		 {
	       for(t=0;t<a;t++)
		     w[i+t]=r[t];
		   for(t=0;t<b;t++)
			   printf("%c",w[t]);
		   break;
		 }
	   }
	}
	if(i==b)
	{
	 for(t=0;t<b;t++)
	   printf("%c",w[t]);
	
	}	

	return 0;
}
int main(){
	char zfc[256];
	char zichuan[256];
	char tihuan[20];
	char daitihuan[20];
	int k;
	int e;
	int s=1;
	int tag=0;
	gets(zfc);
	gets(zichuan);
	gets(tihuan);
	int l,m;
	int i,j;
	l=strlen(zichuan);
	m=strlen(zfc);
	for(i=0;i<m;i++){
		for(j=i;j<i+l;j++){
			daitihuan[j-i]=zfc[j];
		}
		daitihuan[l]=0;
		k=strcmp(daitihuan,zichuan);
		s*=k;
		if(k==0&&tag==0){
			e=i;
			tag=1;
		}
	}
	if(s!=0){
		printf("%s",zfc);
	}
	else if(s==0){
		for(i=0;i<e;i++){
			printf("%c",zfc[i]);
		}
		printf("%s",tihuan);
		for(i=e+l;i<m;i++){
			printf("%c",zfc[i]);
		}
	}
	return 0;
}
int main(){
	int flag=1,i,n,m,j;
	char str[256],sub[256],rep[256];
	scanf("%s%s%s",&str,&sub,&rep);
	n=strlen(str);
	m=strlen(sub);
	for(i=0;i<n;i++){
		if(str[i]==sub[0]){
			flag=1;
			for(j=0;j<m;j++){
				if(str[i+j]!=sub[j]){
					flag=0;
					break;
				}
			}
			if(flag==1){
				for(j=0;j<m;j++){
					str[i+j]=rep[j];
				}
				break;
			}
		}
	}
	printf("%s",str);
	return 0;
}
int main()
{
	int len1,len2,i,j,m,control=0;
	char st[256],sub[256],re[256];
	gets(st);
	gets(sub);
	gets(re);
	len1=strlen(st);
	len2=strlen(sub);
	int k=0;
	for(i=0,j=0;i<len1;i++)
	{
		if(k==0&&sub[j]==st[i])
		{
			if(len2==1)
			{
				for(m=0;m<i;m++)
					printf("%c",st[m]);
				printf("%s",re);
				for(m=m+1;m<len1;m++)
					printf("%c",st[m]);
				control=1;
				break;
			}
			else
			{
				k++;
				j++;}
		}
		else if(k!=0&&sub[j]!=st[i])
		{
			k=0;
			j=0;}
		else if(k!=0&&sub[j]==st[i])
		{
			if(j==len2-1)
			{
				for(m=0;m<i-j;m++)
					printf("%c",st[m]);
				printf("%s",re);
				for(m=m+len2;m<len1;m++)
					printf("%c",st[m]);
				printf("\n");
				control=1;
				break;
			}
			else
			{
				k++;
				j++;}
		}
	}
	if(control==0)
		puts(st);
	return 0;
}
int main()
{
char s[1000], a[50],b[50];

int i,lenb,n,j,flag;
int k=10001;
gets(s);
gets(a);
gets(b);
lenb=(int)strlen(b);

for (i=0; i<=(int)strlen(s); i++,flag=0) {
	for(n=0,j=i;a[n]!='\0';n++,j++){
		if(s[j]!=a[n]){
		flag=1;
		break;
		}
	}
	if(flag) 
		continue;
	else{
		k=i;
		break;
		}
}
for(i=0;i<strlen(s);i++){
	if(i==k){
		printf("%s",b);
		i=i+lenb-1;
		continue;
	}
	else
		printf("%c",s[i]);

}
return 0;
}
int main()
{
	char s[500],w[500],e[500][500],c[500];
	int i,j,m,n,k=0;
	scanf("%s %s %s",w,s,c);
	n=strlen(w);
	m=strlen(s);
	for(i=0;w[i+m-1]!='\0';i++)
	{
		for(j=0;j<m;j++)
		{
			e[i][j]=w[i+j];
		}
	e[i][j]='\0';
	}
for(i=0;i<n-m+1;i++)
{
	if(strcmp(e[i],s)==0) 
	{
		k=1;
		break;
	}
}
int a;
a=i;
	if(k==1)
	{
		for(i=0;i<m;i++)
		{
			w[a+i]=c[i];
		}
		printf("%s",w);
	}
	else if(k==0)
	{
		printf("%s",w);
	}
return 0;
}
int main()
{
    char a[257]={0};
    char b[257]={0};
    char c[257]={0};
    int i=0;
    int j=0;
    int k=0;
    gets(a);
    gets(b);
    gets(c);
int isbreak=0;
    int len=strlen(b);
    for(i=0;i<257;i++){
                           if(a[i+len-1]=='\0')
                                                break;
                           for(j=i;j<i+len;j++){
                                                if(a[j]==b[j-i]){
                                                k++;}
                                                else{
                                                     k=0;
                                                }
                                                }
                           if(k==len){
                                        isbreak=1;
                                      for(j=i;j<i+len;j++){
                                                           a[j]=c[j-i];
                                                           }
                                                           }
if(isbreak!=0)break;
                                                           }
    puts(a);
    return 0;
}
int main ()
{
	int i,n,k,j,r=0,m=0;
	int lens,lena;
	char s[256],a[100],b[100],c[100],d[100];
	scanf("%s%s%s",s,a,b);
	lens=strlen(s);
	lena=strlen(a);
	for(i=0;i<lens;i++)
	{
		m=0;
		for(k=i;k<i+lena;k++)
		{
			if(a[k-i]!=s[k])  m=1;
		}
		if(m==0)
		{
			for(n=0;n<i;n++)
			 c[n]=s[n];
			c[n]='\0';
			for(j=i+lena;j<lens;j++)
			 d[j-i-lena]=s[j];
			 d[j-i-lena]='\0';
			 r=1;
			 printf("%s%s%s",c,b,d);
			 break;
		}
		
	}
	if(r==0) printf("%s",s);
	
	return 0;
}
int main()
{
	int i,j=0,m;
	char zfc[1000],zfc_1[100],zfc_2[100];
	scanf("%s%s%s",zfc,zfc_1,zfc_2);
	for(i=0;zfc[i]!='\0';i++)
	{
		if(j==(int)strlen(zfc_1))
			break;
		if(zfc[i]==zfc_1[j])
			j++;
		else
			j=0;
	}
	if(j==(int)strlen(zfc_1))
	{for(m=0;m<i-j;m++)
		printf("%c",zfc[m]);
	printf("%s",zfc_2);
	for(m=i;m<(int)strlen(zfc);m++)
		printf("%c",zfc[m]);
	}
	else printf("%s",zfc);
	return 0;
}
int main()
{
	char str[256],sub[256],rep[256],sz[256];
	scanf("%s%s%s",str,sub,rep);
	int a,b,c,tag;
	a=strlen(sub);
	c=strlen(str);
	int i,j;
	for(i=0;str[i]!='\0';i++){
		tag=0;
		if(str[i]==sub[0]){
			for(j=0;j<a;j++){
				sz[j]=str[i+j];
			}
			sz[a]='\0';
		}
		if(strcmp(sz,sub)==0){
			b=i;
			strcpy(sub,rep);
			tag=1;
			break;
		}
	}
	if(tag==1){
    	for(i=0;i<b;i++)
		{
	    	printf("%c",str[i]);
		}
    	printf("%s",sub);
    	for(i=b+a;i<c;i++)
		{
 	    	printf("%c",str[i]);
		}
	}
	else
	{
		printf("%s",str);
	}
	return 0;
}
void main ()
{
	char str1[257],str2[257],str3[257];
	int i;
	int b,c;
	char *p;
	
	
	scanf("%s%s%s",str1,str2,str3);
	
	b=strlen(str2);
	
	p=strstr(str1,str2);
	
	if(p)
		
	{
		for(i=0;str1+i<p;i++)
		{
			printf("%c",str1[i]);
		}
		printf("%s",str3);
		
		p=p+b;
		
		printf("%s",p);
		
	}

	else
		printf("%s",str1);
}
int main(){
	char mubiao[N],h;
	char zichuan[N];
	char replace[N];
	int i,x;
	int j=0;
	int flag;
	scanf("%s",mubiao);
    scanf("%s",zichuan);
	scanf("%s",replace);
	int a=strlen(mubiao);
	int b=strlen(zichuan);
	for(i=0;i<a;i++){
		if(mubiao[i]==zichuan[j]){
			j++;
		}else {
			j=0;
		}
		if(j==b){
		    flag=1;
			break;
		}
	}
	if(flag==1){
	for(j=b-1;j>=0;j--){
		h=replace[j];
		
		mubiao[i]=h;
		i--;
	}
	}
	printf("%s\n",mubiao);
	return 0;
}
int main()
{
	char s[256],b[256],c[256];
	int i,j,k,n,m;
	scanf("%s",&s);
	scanf("%s",&b);
	scanf("%s",&c);
	n=strlen(s)-strlen(b);
	for(i=0;i<=n;i++)
	{
		m=0;
		for(j=0,k=i;j<strlen(b);j++,k++)
		{
			if(s[k]==b[j])
			{
				m++;
			}
		}
		if(m==strlen(b))
		{
			for(j=i,k=0;j<strlen(b)+i;j++,k++)
			{
				s[j]=c[k];
			}
			break;
		}
	}
	puts(s);


	return 0;
}
int main(){
	char str[255],sub[255],rep[255],s[255];
	gets(str);
	gets(sub);
	gets(rep);
	int len1=strlen(str),len2=strlen(sub),x=0;
	int i,j,n;
	for(i=0;i<len1-len2+1;i++){
		n=0;
		for(j=0;j<len2;j++){
			if(str[i+j]!=sub[j]){
				break;
			}
			else
				n++;
		}
		if(n==len2){
			int m=0;
			while(i+j+m<len1){
				s[m]=str[i+j+m];
				m++;
			}
			s[m]='\0';
			str[i]='\0';
			strcat(str,rep);
			strcat(str,s);
			puts(str);
			x=1;
			break;
		}
	}
	if(x==0)
		puts(str);
	return 0;
}
/*
  Name:???? 
  Author: ??? 
  Date: 26/12/12 17:01
*/
int main()
{
    char string[10000], subString[300], replacement[1000];
    cin >> string >> subString >> replacement;
    char *p, *q;
    q = replacement;
    p = strstr(string, subString);                                              //??????? 
    if (p != NULL)                                                              //??????? 
    {
        while (*q)
        {
            *p++ = *q++;
        }
    }
    cout << string << endl;                                                     //????????? 
    return 0;
}
int main()
{
	char s[256],a[256],b[256];
	gets(s);
	gets(a);
	gets(b);
	int i,j,k,t=-2;
	int lengths,lengtha,lengthb;
	lengths=strlen(s);
	lengtha=strlen(a);
	lengthb=strlen(b);

	for(i=0;i<lengths;i++){
		k=0;
		for(j=0;j<lengtha;j++){
			if(a[j]==s[i+j]){
				k++;
			}
		}
			
		if(k==lengtha){
			t=i;
			break;
		}
	}
	if(t!=-2){
		for(i=0;i<t;i++){
			printf("%c",s[i]);
		}
	printf("%s",b);
		for(i=t+lengthb;i<lengths;i++){
			printf("%c",s[i]);
		}
	}
	else{
		puts(s);
	}
	return 0;
}
int main()
{
	char str[501],subs[501],rep[501];
	int i,j,k,len,len1;
	scanf("%s%s%s",str,subs,rep);
	i=0;
	len=strlen(str);
	while(str[i]!='\0')
	{
		if(str[i]==subs[0])
		{
			len1=strlen(subs);
			for(j=0;j<len1;j++)
			if(str[i+j]!=subs[j])break;
			if(j==len1)
			{
				for(k=0;k<i;k++)
				printf("%c",str[k]);
				printf("%s",rep);
				for(k=i+len1;k<len;k++)
				printf("%c",str[k]);
				break;
			}
		}
		i++;
	}
	if(str[i]=='\0')
	printf("%s",str);
	return 0;
}
int main(){
char s[256],a[256],b[256];
int x,y,z,k,l,i,j,m,n,cha,mark=0;

gets(s);
scanf("%s",a);
scanf("%s",b);
x=strlen(a);
y=strlen(b);
z=strlen(s);

for(i=0;i<z;i++){
	if(s[i]==a[0]){
		for(j=0;j<x;j++){
			if((s[i+j]==a[j])&&(j!=x-1)){
	           continue;}
			else if(s[i+j]!=a[j]){break;}
			else if((s[i+j]==a[j])&&(j==x-1)){
				mark++;
				    if(x>y){
						for(k=0;k<y;k++){
							s[i+k]=b[k];
						}
						cha=x-y;
						for(m=i+x;m<z;m++){
						s[m-cha]=s[m];
						}
                        s[z-cha]='\0';
					}
					else if(x==y){//??=?==	
						for(k=0;k<y;k++){
					        s[i+k]=b[k];
						}
					}
					else if(x<y){
						cha=y-x;
						for(l=z-1;l>=i+x;l--){
						s[l+cha]=s[l];
						}
						for(n=0;n<y;n++){
						s[i+n]=b[n];}
						s[z+cha]='\0';
						z=strlen(s);//??????s?????????z???????
					}
			}
		}
	}
		if(mark!=0){
	           printf("%s",s);
	           return 0;
		}
	
}
if(mark==0){
printf("%s",s);
}

return 0;
}