semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
void main()
{
	char a[100],b[100],c[100],temp[100];
	int i,j=0,k,lena,lenb,mark=0;
    scanf("%s",a);
    scanf("%s",b);
    scanf("%s",c);
	lena=strlen(a);
	lenb=strlen(b);

	for(i=0;i<lena;i++)
	{
		if(a[i]==b[0])  
		{
			for(j=1;j<lenb;j++)	
			{
				if(a[i+j]==b[j]) mark=1;
				else
				{
					mark=0;
					break;
				}
			}
		}
		if(mark==1)
		{
			for(k=0;k<lenb;k++)
				a[i+k]=c[k];
			break;
		}
	}
	for(i=0;i<lena;i++)
	{
		printf("%c",a[i]);
		
	}
}
int main()
{
	char s1[260],s2[260],s3[260];
	int i,j,a=0,b,c,d;
	gets(s1);
	gets(s2);
	gets(s3);
	c=strlen(s2);
	d=strlen(s1);
	for(i=0;s1[i]!=0;i++)
	{
		if(s1[i]==s2[0])
		{
			for(j=0;s2[j]!=0;j++)
			{
				if(s1[j+i]==s2[j])
				{
					a=1;
				}
				else
				{
					a=0;
					break;
				}
			}
		}
		if(a==1)
		{
			b=i;
			break;
		}
	}
	if(a==1)
	{
			for(i=0;i<b;i++)
			{
				printf("%c",s1[i]);
			}
	        for(i=0;s3[i]!=0;i++)
			{
		        printf("%c",s3[i]);
			}
	        for(i=0;i<d-b-c;i++)
			{
				printf("%c",s1[i+c+b]);
			}
	}
	else
	{
		printf("%s",s1);
	}
	return 0;
}
int main()
{
	char s[300],a[300],b[300];
	int x=0;
	gets(s);
	gets(a);
	gets(b);
	int sl=strlen(s);
	int al=strlen(a);
	int bl=strlen(b);
	for(int i=0;i<sl;i++)
	{
		if((a[0]==s[i]&&a[al-2]==s[i+al-2])&&x==0)
		{
            for(int w=0;w<bl;w++)
			{
				printf("%c",b[w]);
			}
            i+=al-1;
			x=1;
			
		}
        
        else
		{
			
				printf("%c",s[i]);
			    
		}
	}
		return 0;
}
int main()
{
	char a[300],b[300],c[300];
	int i,j;
	gets(a);
	gets(b);
	gets(c);
	for(i=1;a[i-1]!='\0';i++)
	{
		if(a[i-1]==b[0])
		{
			for(j=1;b[j-1]!='\0';j++)
			{
				if(a[i-1+j-1]!=b[j-1])
					break;
			}
			if(b[j-1]!='\0')
				continue;
			else
			{
				for(j=i;b[j-i]!='\0';j++)
					a[j-1]=c[j-i];
			}
			break;
		}
		else
			continue;
	}
	puts(a);
	return 0;
}
int main()
{
	char s1[300] , s2[300] , s3[300];
	scanf ( "%s%s%s" , s1 , s2 , s3 );
	char *p = strstr ( s1 , s2 );
	if ( p )
	{
		char temp = *(p + strlen(s2));
		strcpy ( p , s3 );
		*(p+strlen(s2)) = temp;
	}
	printf ( "%s\n" , s1 );
	return 0;
}
int main(){
	char a[256],b[256],c[256];
	int i,j,panduan,k;
	k=0;
	panduan=0;
	gets(a);
	gets(b);
	gets(c);
	for(i=0;a[i]!='\0';i++){
		panduan=0;
	
			for(j=0;b[j]!=0;j++){
				if(a[i+j]!=b[j]){
					panduan=1;
					break;
				}
			}
		if(panduan==0&&k==0){
			printf("%s",c);
			i+=j-1;
			k=1;
		}
		else
			printf("%c",a[i]);
		
		
	}
	return 0;
			


}
int main()
{
    char a[200],b[300],c[300];
	int d=0,i,j,k,m,n,lenb,lena;
	scanf("%s %s %s",a,b,c);
	lena=strlen(a);
	lenb=strlen(b);
	for (i=0;i<lena;i++)
	{
		if (a[i]==b[0]) 
		{
			for (j=i,k=0;j<i+lenb,k<lenb;j++,k++)
			{
				if (a[j]!=b[k]) break;  
			}
			if (k==lenb) d=1;
		}
		if (d==1) break;
	}
	if (d==1)
	{
		for (m=i,n=0;m<i+lenb,n<lenb;m++,n++)
		{
			a[m]=c[n];
		}
		printf("%s",a);
	}
	if (d==0) printf("%s",a);
	return 0;
}
int main()
{
	char a[256],b[256],c[256];
	int i,j,lena,lenb;
	scanf("%s%s%s",a,b,c);
	lena=strlen(a);
	lenb=strlen(b);
	a[lena]='\0';
    int x,s;
	for(i=0;i<lena;i++)
	{
		x=-1;
		for(j=0;j<lenb;j++)
		{
			if(a[i+j]!=b[j])
			{
				x=0;
				break;
			}
		}
		if(x!=0)
		{
			s=i;
			break;
		}
	}
	if(x==0)
		printf("%s",a);
	else
	{
		for(i=0;i<s;i++)
			printf("%c",a[i]);
		printf("%s",c);
		for(i=s+lenb;i<lena;i++)
		{
			printf("%c",a[i]);
		}
	}
	return 0;
}
int main()
{
 char str[256],sub[256],rep[256],temp[256];
 char* p;
 gets(str);
 gets(sub);
 gets(rep);
 p = strstr(str,sub);
 if(p!=NULL){
  *p = 0;
  strcpy(temp, str);
  strcat(temp, rep);
  strcat(temp, p+strlen(sub));
  strcpy(str, temp);
 }
 printf("%s\n", str);
 return 0;
}
int match(char *pa, char *pb, int lenb)
{
	int i;
	for (i = 1; i < lenb; i++)
		if (*(pa + i) != *(pb + i))
			return 0;
	return 1;
}

int main()
{
	char a[300], b[300], c[100], d[300] = {'0'};
	int i, j, lenb, k;
	cin >> a >> b >> c;
	lenb = strlen(b);
	for (i = 0; a[i] != '\0'; i++)
		if (a[i] == b[0])
			if (match(&a[i], b, lenb))
			{
				for (j = i + lenb; a[j] !='\0'; j++)
					d[j] = a[j];
				for (j = 0, k = i; c[j] != '\0'; k++, j++)
					a[k] = c[j];
				for (j = i; d[j] != '\0'; j++, k++)
					a[k] = d[j];
				break;
			}
	cout << a << endl;
	return 0;
}
int main()
{
	char s1[500],s2[20],s3[20];
	int i,j,len1,len2,len3,count,c=0;
	
	gets(s1);
	gets(s2);
	gets(s3);
	len1=strlen(s1);
	len2=strlen(s2);
	len3=strlen(s3);
	
	for (i=0;i<len1;i++)
	{
		count=0;
		if (s1[i]==s2[0])
			for (j=0;j<len2;j++)
				if (s1[i+j]==s2[j])
					count++;
		if (count==len2)
			break;
	}
	for (j=0;j<i;j++)
		printf("%c",s1[j]);
if (i!=len1)
	printf("%s",s3);
	for (j=i+len2;j<len1;j++)
		printf("%c",s1[j]);
	return 0;
}
int main(int argc, char* argv[])
{
	char string[256],subString[256],replacement[256],buffer[256]={0},result[256]={0};
	scanf("%s\n%s\n%s",string,subString,replacement);
	int mainlen=strlen(string),sublen=strlen(subString);
	int i;
	for(i=0;i<=mainlen-sublen;i++)
	{
		strncpy(buffer,(string+i),sublen);
		if(!strcmp(buffer,subString))
		{
			strncpy(result,string,i);
			strcat(result,replacement);
			strcat(result,(string+i+sublen));
			printf("%s",result);
	        return 0;
		}
	}
		printf("%s",string);
		return 0;
}
int main()
{
	char string[500],substring[50],replacement[50];
	int same,i,k,c;
	scanf("%s%s%s",string,substring,replacement);
	for (i=0;i<strlen(string);i++)
	{
		same=1;
		for (k=0;k<strlen(substring);k++)
		{
			if (string[i+k]!=substring[k])
			{
				same=0;
			}
		}
		if(same==1)
		{
			printf("%s",replacement);
			c=i;
			break;
		}
		else
		{
			printf("%c",string[i]);
		}
	
	}
	for(i=c+strlen(substring);i<strlen(string);i++)
	{
		printf("%c",string[i]);
	}
	return 0;
}
int main(){
    char str[100],sub[100],re[100];
    gets(str);
    gets(sub);
    gets(re);
    int bar=0,min=0;
    int len1=strlen(str),len2=strlen(sub);
    for(int i=0;i<len1;){
            bar=0;
            if(str[i]==sub[0]){
                     for(int j=0;j<len2;j++){
                             if(str[i+j]!=sub[j]){
                                       bar=1;
                             }
                     }
                     if(bar==0&&min==0){
                             printf("%s",re);
                             i=i+len2;
                             min=1;
                     }
                     else{
                             printf("%c",str[i]);
                             i=i+1;
                             bar=0;
                     }
            }
            else{
                 printf("%c",str[i]);
                 i=i+1;
            }
    }
    return 0;
}
int main()
{  int same,i,j,k;
    char str[256],sub[256],repl[256];
   scanf("%s%s%s",str,sub,repl);
   for(i=0;i<strlen(str);i++)
   { same=1;
     for(j=0;j<strlen(sub);j++)
     {if(str[i+j]!=sub[j])
      same=0;
     }
     if(same==0)
     printf("%c",str[i]);
     if(same==1)
     { printf("%s",repl);
       for(k=i+strlen(sub);str[k]!=0;k++)
       {printf("%c",str[k]);}
       break;
     }
   }
return 0;
}
int main()
{
	char str[1000],sub[1000],rep[1000];
	int len1,len2,len3,i,j,k;
	gets(str);
	gets(sub);
	gets(rep);
	len1=strlen(str);
	len2=strlen(sub);
	len3=strlen(rep);
 for(j=0;j<len2;j++)	
	 
 for(i=0;i<len1;i++)
 {if(str[i]!=sub[0])continue;
	
	 if(str[i]==sub[0]&&str[i+1]==sub[1]&&str[i+2]==sub[2]&&str[i+3]==sub[3])break;	
 }
			if(i<len1)
             for(k=i;k<i+len2;k++)
					  str[k]=rep[k-i];
 
          
				  printf("%s",str);
				return 0;
}
main(){
char a[256],b[256],c[256];
int n,m,i,j,k,d;
for(i=0;i<256;i++){
a[i]='\0';
b[i]='\0';
c[i]='\0';
}
scanf("%s",a);
scanf("%s",b);
scanf("%s",c);

m=0;
n=0;
d=0;
for(i=0;a[i]!='\0';i++){
m++;
}
for(i=0;b[i]!='\0';i++){
n++;
}
for(i=0;c[i]!='\0';i++){
d++;
}

int h=0;
i=0;
while(a[i]!='\0'){
if(a[i]==b[0]){
j=0;
h=i;
k=0;
while(a[i]==b[j]&&a[i]!='\0'){

k++;
i++;
j++;

}
if(k==n){
int t=0;
for(t=0;t<d;t++){
a[h+t]=c[t];
}
break;
}
}
else
i++;
}
printf("%s",a);
}
int main()
{
	char words[200],a[100],b[100];
	int n,k,j=0,i,s,d;
	gets(words);
	gets(a);
	gets(b);
	n=strlen(words);
	s=strlen(a);
    d=strlen(b);
	for(i=0; i < n ; i++)
	{
		if(strncmp(words + i, a, s) == 0)
		{
			for(j=i,k=0;k<d;j++,k++){
			    words[j]=b[k];
			}
			break;
		}
	}
	puts(words);
	return 0;
}
int main(){
	char a[300],b[300],c[300];
	int i,j,f,d,k=0;
	scanf("%s%s%s",a,b,c);
	d=strlen(a);
	f=strlen(c);
	for(i=0;i<d;i++){
		if(a[i]==b[0]&&a[i+1]==b[1]&&a[i+2]==b[2]&&a[i+3]==b[3]){
			for(j=i;j<i+f;j++){
				a[j]=c[k];
				k++;
			}
			break;
		}
	}
	printf("%s",a);
	return 0;
}
int main()
{
	char s[300], a[256], b[256];
	int n, m, p, i, j, k;
	cin.getline(s, 256);
	cin.getline(a, 256);
	cin.getline (b, 256);
	n = strlen(s);
	m = strlen(a);
	p = strlen(b);
	for(i = 0 ; i < n; i++)
	{
		if(s[i] == a[0])
		{
			for(j = 1; j < m; j++)
				if(a[j] != s[j + i])
					break;
			if(j == m)
			{
				if(m == p)
				{
					for(j = 0; j < m; j++)
						s[i + j] = b[j];
				}
				else
				{
					if(p < m)
					{
						for(j = 0; j < p; j++)
							s[i + j] = b[j];
						for(j = i + p;; j++)
						{
							s[j] = s[j + m - p];
							if(s[j] == '\0') break;
						}
					}
					else
					{
						for(j = 0;; j++)
						{
						    if(n - j == i + m - 1)
								break;
							s[n + p - m - j] = s[n - j];
						}
						for(k = 0; k < p; k++)
							s[i + k] = b[k];
					}
				}
				break;
			}
		}
	}
	cout << s << endl;
	return 0;
}
int main()
{
	char a[256],b[256],c[256];
	scanf("%s%s%s",b,a,c);
	int alen,blen,clen,i,j;
	alen=strlen(a);blen=strlen(b);clen=strlen(c);
	int n=0;
	for(i=0;i<blen;i++)
	{
		if(b[i]==a[0])
		{
			n=1;
			for(j=0;j<alen;j++)
				if(a[j]!=b[i+j]) {n=2;break;} 
		}
		if(n==1) break;
	}
	int t=i;
	if(n==1)
	{
	for(i=0;i<t;i++) printf("%c",b[i]);
	printf("%s",c);
	for(i=t+clen;i<blen;i++) printf("%c",b[i]);
	}
	else printf("%s",b);
	return 0;
}
int main()
{
char t[256],s[256],r[256];
int lt,ls,i=0,j=0,p;
scanf("%s%s%s",s,t,r);
lt=strlen(t);
ls=strlen(s);
while(i<lt&&j<ls)
{
if(t[i]==s[j])
{
i++;
j++;
}
else{
j=j-i+1;
p=j;
i=0;
}
}
if(i==lt) 
for(i=0;i<lt;i++)
{
s[i+p]=r[i];
}
printf("%s",s);
return 0;
}
int main()
{
	char a[257],b[257],c[257];
	int i,k=0,j,len1,len2,len3;
	scanf("%s%s%s",a,b,c);
	len1=strlen(a);
		len2=strlen(b);
len3=strlen(c);
	for(i=0;i<len1;i++)
	{
		for(j=0;j<len2;j++)
		{
			if(a[i+j]==b[j])
				k++;
		
		}
		if(k==len2)
				break;
k=0;
	}
if(k==len2)
{
	for(j=0;j<i;j++)
{
	printf("%c",a[j]);
}
for(j=0;j<len3;j++)
{
	printf("%c",c[j]);
}
for(j=i+len2;j<len1;j++)
{
	printf("%c",a[j]);
}
}
if(k!=len2)
{
	printf("%s",a);
}
return 0;
}
main()
{
 char string[257],sub[257],re[257];
 char out[257]={'\0'};
 scanf("%s",string);
 scanf("%s",sub);
 scanf("%s",re);
 int i,k=0,len,m=0;
 len=strlen(sub);
 int len2=strlen(re);
 int len3=strlen(string);
 for(i=0;i<256;i++)
 {
  if(string[i]==sub[k])
  {
   k+=1;
   if(k==len) break;                    
                       }
   else
   {
    k=0;   
       }                 
                   }
                   if(k==len)
                   {
                    int s=len3-len+len2;
                    for(int j=0;j<s;j++)
                    {
                     if(j<=i-k) {out[j]=string[j];continue;}
                     if(j>i-k&&j<=i-k+len2) {out[j]=re[m];m+=1;}
                     else {out[j]=string[i+1];i++;}      
                            }         
                     printf("%s",out);        
                             }
                    else
                    printf("%s",string);
                                 
      }
void main()
{
	char s[300],d[300],r[300];
	int i=0,j,k,ls,lr,ld;
	int flag=0;
	int cont=0;
	gets(s);
	gets(d);
	gets(r);
	ls=strlen(s);
	ld=strlen(d);
	lr=strlen(r);
	for(i=0;i<ls;)
	{
		flag=0;
		for(j=0;j<ld;j++)
		{
			if(s[i+j]==d[j])
				flag++;
			if(flag==ld)
				cont++;
		}

		if(flag==ld&&cont==1)
		{
			cont++;
			for(k=0;k<lr;k++)
			{
				s[i+k]=r[k];
			}
			i=i+lr;
			continue;
		}
		else
		{
			i++;
			continue;
		}
		
	}
	puts(s);
}
int main(){
    char s[100],a[100],b[100],zfc[100],s2[200];
	gets(s);
    gets(a);
	gets(b);
    int i,k,l,la,lb,ls,th=200;
    ls=strlen(s);
    la=strlen(a);
	lb=strlen(b);
    for(i=0;i<ls;i++){
		l=0;
        for(k=i;k<la+i;k++){
			zfc[l]=s[k];
            l++;
        }
		zfc[l]='\0';
        if(strcmp(zfc,a)==0){
		   th=i;
           break;
        }
	}
	if(th<200){
	for(i=0;i<th;i++){
		s2[i]=s[i];
	}	
	for(i=th;i<th+lb;i++){
		s2[i]=b[i-th];
	}
	for(i=th+lb;i<ls+lb-la;i++){
		s2[i]=s[i-lb+la];
	}
	s2[ls+lb-la]='\0';
    puts(s2);}
	if(th==200){
		puts(s);
	}
    
    return 0;
}
int main(){
	char zf[266];
	char a[266];
	char b[266];
	int i,k,j=0,c=0,d=0,p=0,mark=0;
	scanf("%s",zf);
	c=strlen(zf);
	scanf("%s",a);
	d=strlen(a);
	scanf("%s",b);
	for(i=0;i<c;i++){
		if(zf[i]==a[0]){
			for(k=0;k<d;k++){
				if(zf[i+k]==a[k]){
					j++;
					if(j==d){
						p=i;
						mark=1;
					}
				}
			}
		}
	}if(mark==1){
		for(i=0;i<p;i++){
			printf("%c",zf[i]);
		}printf("%s",b);
		for(i=p+d;i<c;i++){
			printf("%c",zf[i]);
		}
	}if(mark==0)
		printf("%s",zf);
	return 0;
}
int main()
{
	int i,j,k;
char a[256],b[256],c[256];
scanf("%s",a);
scanf("%s",b);
scanf("%s",c);
for(i=0;i<256;i++)
{	k=0;
	for(j=0;j<strlen(b);j++)
	{
		if(a[j+i]!=b[j])
		{
			k=1;break;}
	}
	//printf("%d",k);
	if(k==0)
	{	for(j=0;j<i;j++)
			printf("%c",a[j]);
		for(j=0;j<strlen(c);j++)
			printf("%c",c[j]);
		for(j=i+strlen(b);j<strlen(a);j++)
			printf("%c",a[j]);
	
		break;
	}

}if(k==1)
	{
		for(j=0;j<strlen(a);j++)
			printf("%c",a[j]);
	
	}
//	printf("\n");
	return 0;
}
int main()
{
	char s[256],a[256],b[256],c[256];
	int i,j,m,n,k,t,q=0,p=0;
	gets(s);
	gets(a);
	gets(b);
	m=strlen(s);
	n=strlen(a);
	k=strlen(b);
	for(i=0;i<=m-n;i++)
	{
		for(j=i;j<i+n;j++)
		{
			if(s[j]==a[j-i])
				p++;
			else
				break;
		}
		if(p==n)
		{
			q++;
			t=i;
			for(j=0;j<=t-1;j++)
				c[j]=s[j];
			for(j=t;j<t+k;j++)
				c[j]=b[j-i];
			for(j=t+k;j<m-n+k;j++)
				c[j]=s[n+j-k];
			c[m-n+k]='\0';
			puts(c);
			break;
		}
		p=0;
	}
	if(q==0)
		puts(s);
	return 0;
}
int main(){
    char yuan[256],jiu[256],xin[256];
	int i,j,len,n=0,len1,u[256],jishu[256]={0},len2,k,weizhi,sum=0;
     scanf("%s",yuan);
     scanf("%s",jiu);
	 scanf("%s",xin);
	 len1=strlen(yuan);
	 len2=strlen(jiu);
	  for(i=0;i<len1;i++){
		 if(yuan[i]==jiu[0]){
			 u[n]=i;
			 n++;
		 }
	 }
	  for(i=0;i<n;i++){
		  for(j=u[i],k=0;j<u[i]+len2,k<len2;j++,k++){
			  if(yuan[j]!=jiu[k])
			{
				  jishu[i]++;
			  }
		  }
	  }
	for(i=0;i<n;i++){
				   if(jishu[i]==0){
					   sum++;
				   }
	}
				   if(sum==0){
					   printf("%s",yuan);
				   }
				   else{
	  for(i=0;i<n;i++){
				   if(jishu[i]==0){
					   weizhi=u[i];
break;
				   }
				   }
				  
	  for(i=weizhi,k=0;i<weizhi+len2,k<len2;i++,k++){
		  yuan[i]=xin[k];
	  }
	  printf("%s",yuan);
		

				   }


	return 0;
}
/*************************
 ***??:??? 1200012776
 ***????:????
 ***??:2012?12?24?
 *************************/
int main()
{
	char string[260] = {0}, substring[50] = {0}, replacement[50] = {0}, temp[50] = {0},
		length, length_s, length_r, i, j, k = 0, m, n;
	cin >> string >> substring >> replacement;
	length = strlen(string);
	length_s = strlen(substring);
	length_r = strlen(replacement);
	for (i = 0; i <= length - length_s; i++)
	{
		memset(temp, 0, sizeof(temp));
		k = 0;
		for (j = i; j < i + length_s; j++)
		{
			temp[k++] = string[j];	//????
		}
		if (!strcmp(temp, substring))	//???
		{
			if (length_s != length_r)	//??????????????,??????
			{
				n = i + length_s;
				for (m = i + length_r; m < length; m++)
				{
					string[m] = string[n++];
				}
			}
			n = 0;
			for (m = i; m < i + length_r; m++)
			{
				string[m] = replacement[n++];
			}
			break;
		}
	}
	cout << string << endl;
	return 0;
}
main()
{
      char a[256],b[256],c[256];
      int i,j,n=0,m;
      gets(a);
      gets(b);
      gets(c);
      m=strlen(b);
      for(i=0;a[i]!='\0';i++)
      {
                             if(a[i]==b[0])
                             {
                                           for(j=1;j<m;j++)
                                           {
                                                                   if(a[i+j]==b[j])
                                                                      n++;
                                           }
                             }
                             if(n==m-1)
                             {
                                             for(j=0;j<m;j++)
                                             a[i+j]=c[j];
                                             break;
                             }
      }
      puts(a);
      getchar();
      getchar();
      getchar();
}
void main(){
	void copy(char a[],char b[],char c[]);
	char S[100],sub[100],re[100];
	scanf("%s",S);
	scanf("%s",sub);
	scanf("%s",re);
	int a,b,c,i,j;
	a=strlen(S);
	b=strlen(sub);
	c=strlen(re);
	
    int m,k;
	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",re);
			for(k=i+b;k<a;k++)printf("%c",S[k]);
			break;
			}
		}
	}  if(i==a)printf("%s",S);
	
}
int main()
{
	int i,j,a,b,c,m,d,k,v=0;
	char str[100],substr[100],rep[100];
	scanf("%s%s%s",str,substr,rep);
	a=strlen(str);
	b=strlen(substr);
	for(i=0;i<a;i++)
	{
	       k=i;
		   if(substr[0]==str[k])
		   {
			   d=0;
			   for(j=i+1,m=1;j<i+b;j++,m++)
			   {
				   if(substr[m]==str[j])
					   d++;
			   }

				   if(d==b-1)
					   for(j=i,c=0;j<i+b;j++,c++)
					   {
						   str[j]=rep[c];
						   v=1;
						  
					   }
					   
		   }
		   if(v==1)
			   break;
	} printf("%s",str);
	return 0;
}
int main()
{
	int m,n,i,j,t=0;
	char c[256],d[256],e[256];
	scanf("%s",c);
	scanf("%s",d);
	scanf("%s",e);
	m=strlen(c);
	n=strlen(d);
	for(i=0;i<m;i++)
	{
		if(c[i]==d[0])
		{
			t=0;
			for(j=i;j<i+n;j++)
			{
				if(c[j]==d[j-i])
				{
					t=t+1;
				}
			}
			if (t==n)
			{
				for(j=i;j<i+n;j++)
				{
					c[j]=e[j-i];
				}
				break;
			}
		}
	}
	printf("%s",c);
	return 0;
}
int main()
{
	char s1[256];
	char s2[256];
	char s3[256];
	int i,j,q;
	scanf("%s\n%s\n%s",s1,s2,s3);
//	printf("%s %s %s",s1,s2,s3);
	int k1=strlen(s1);
	int k2=strlen(s2);
	for(i=0;i<k1;i++)
	{
		int k=0;
		for(j=0;j<k2;j++)
		{
			if(s1[i+j]!=s2[j])
			{
				break;
			}
			if(s1[i+j]==s2[j])
			{
				k++;
			}
		}
		
		if(k==k2)
		{
			q=i;
			break;
		}
	}
	for(i=0;i<k1;i++)
	{
		if(i!=q)
		{
			printf("%c",s1[i]);
		}
		if(i==q)
		{
			printf("%s",s3);
			i=i+k2-1;
		}
	}


	
	return 0;
}
int main ()
{
	char str[256],sub[256],re[256];
	scanf("%s%s%s",str,sub,re);
	int l1,l2;
	l1=strlen(str);
	l2=strlen(sub);
	int i,j,m;
	for(i=0;i<l1;i++)
	{
		m=1;
		for(j=0;j<l2;j++)
		{
			if(str[i+j]!=sub[j])
			{
				m=2;
			}
		}
		if(m==1)
		{
			for(j=0;j<l2;j++)
			{
				str[i+j]=re[j];
			}
			break;
		}
	}
	printf("%s\n",str);
	return 0;
}
int main()
{
	char str[256],sub[256],rep[256];
	
	int wz=-1;
	int len1,len2;
	int i,j,x;

	gets(str);
	gets(sub);
	gets(rep);
	len1=strlen(str);
	len2=strlen(sub);
	for(i=0;i<len1;i++){
		if(str[i]==sub[0]){
			x=1;
			wz=i;
			for(j=0;j<len2;i++,j++){
				if(sub[j]!=str[i]){
					x=0;
					i=wz;
					
					break;
				}
			}
			if(x!=0){
				break;
			}
		}
	}
	if(wz==-1){
		printf("%s",str);
	}
	else{
		for(i=0;i<wz;i++){
			printf("%c",str[i]);
		}
		printf("%s",rep);
		for(i+=len2;i<len1;i++){
			printf("%c",str[i]);
		}
	}
	printf("\n");
	return 0;
}
int main(int argc, char* argv[])
{
	int i,j,s,m,n,k;
	char str1[257],str2[257],str3[257];
	scanf("%s",str1);
	scanf("%s",str2);
	scanf("%s",str3);
	m=strlen(str1);
	n=strlen(str2);
	k=strlen(str3);
	for(i=0;i<=m-n;i++)
	{
		s=0;
		for(j=i;j<i+n;j++)
		{
			if(str2[j-i]==str1[j])
				s++;
		}
		if(s==n)
		{
			for(j=0;j<i;j++)
			{
				printf("%c",str1[j]);
			}
			for(j=0;j<k;j++)
			{
				printf("%c",str3[j]);
			}
			for(j=i+n;j<m;j++)
			{
				printf("%c",str1[j]);
			}
			break;
		}
	}
    if(s!=n)
		printf("%s",str1);
	return 0;
}
int main()
{
char sr[1000];
gets(sr);
char a[1000],b[1000];
scanf("%s%s",a,b);
int len,ken;
len=strlen(sr);
ken=strlen(a);
int i,j,k,m;
m=0;
// Ilovehomelive live==>jdkfjdsjfks
for(i=0;i<len;i++)
{
	if(sr[i]==a[0]){j=i;
	for(k=0;k<ken;k++)
		if(sr[k+j]==a[k]){m=1;}
		else if(sr[k+j]!=a[k]){m=0;break;}
	}
	if(m==1)  break;
}
if(m==0){printf("%s",sr);}
char c[1000],d[1000];
if(m==1)
{
	for(i=0;i<j;i++)
		{c[i]=sr[i];}
	c[j]='\0';
	if(j+ken==len)
		{printf("%s%s",c,b);}
	if(j+ken<len)
	{
		for(i=j+ken;i<len;i++)
			{d[i-j-ken]=sr[i];}
			d[len-j-ken]='\0';
			printf("%s%s%s",c,b,d);
	}
}
return 0;
}
int main(){
    char yuan[256];
    char sub[256];
    char replace[256];
    char sz[256][256];
    gets(yuan);
    gets(sub);
    gets(replace);
    int n=strlen(sub);
    int m=strlen(yuan);
    int i,k,result;
    int a=0;
    int b=0;
    for(i=0;i<=m-n;i++)
    {
                       for(k=0;k<n;k++)
                       {
                                       sz[a][b]=yuan[i+k];
                                       b++;
                                       }
                                       sz[a][b]='\0';
                                       a++;
                                       b=0;
                                       }
                                       for(i=0;i<a;i++)
                                       {
                                                       result=strcmp(sz[i],sub);
                                                       if(result==0)
                                                       {
                                                                    strcpy(sz[i],replace);
                                                                    printf("%s",sz[i]);
                                                                    i+=n;
break;
                                                                    }
                                                                    else{
                                                                    printf("%c",yuan[i]);
                                                                    }
                                                                    }
                                       for(i=i;i<m;i++)
                                       {
                                                        printf("%c",yuan[i]);
                                                        }
                                       
                                                                      
                       
                       
    
    
    
    
    
    
    
    
                            
 
		return 0;
}
int main ()
{
	char zfc[2000];
	gets(zfc);
	int c;
	c=strlen(zfc);
    char tzfc[2000];
	char hzfc[2000];
	gets(tzfc);
	gets(hzfc);
	int ct,ch;
	ct=strlen(tzfc);
	ch=strlen(hzfc);

	
	int i,wei,an=0,x,deng=0;
	for(i=0;i<c;i++)
	{
	     int flag=0;
		 for(x=i;x<ct+i;x++)
		 {
		    if(zfc[x]!=tzfc[x-i])
			{
		    flag=1;
			}
		    if(flag==1)
			{
		    break;
			}
		 }
	     if(flag==0)
		 {
		 wei=i;
		 an++;
		 deng=1;
		 }
		 
		 
	  if(an==1)
	  {
	  break;
	  }
	}

    if(deng==0)
	{
	puts(zfc);
	}
    else
	{

    int xzfc[2000];
	for(i=0;i<wei;i++)
	{
	xzfc[i]=zfc[i];
	}
	for(i=wei;i<ch+wei;i++)
	{
	xzfc[i]=hzfc[i-wei];
	}
	for(i=ch+wei;i<c-ct+ch;i++)
	{
	xzfc[i]=zfc[i-(ch-ct)];
	}
	
	
	for(i=0;i<c-ct+ch;i++)
	{
	printf("%c",xzfc[i]);
	}
    
    }
	return 0;
}
int main()
{
	char str[300], subString[300], replacement[300];
	char *p, *q;
	int strLen, subLen, repLen, move, i;
	cin >> str >> subString >> replacement;
	strLen = strlen(str);
	subLen = strlen(subString);
	repLen = strlen(replacement);
	p = strstr(str, subString);
	if (p == NULL)
	{
		cout << str;
		return 0;
	}
	q = replacement;
	if (repLen > subLen)
	{
		move = repLen - subLen;
		for (q = str + strLen + move; q >= p + repLen; q--)
		{
			*q = *(q - move);
		}
		i = 0;
		q = replacement;
		while (i < repLen)
		{
			*p++ = *q++;
			i++;
		}
	}
	else if (repLen == subLen)
	{
		i = 0;
		while (i < repLen)
		{
			*p++ = *q++;
			i++;
		}
	}
	else
	{
		i = 0;
		while (i < repLen)
		{
			*p++ = *q++;
			i++;
		}
		move = subLen - repLen;
		while (*(p + move) != '\0')
		{
			*p++ = *(p + move);
		}
		*p = '\0';
	}
	cout << str << endl;
	return 0;
}