semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
	//str????? substr??????? replace????????
	char str[256], substr[256], replace[256];
	char p[256];

	//k:???????????????????1?????????0
	int k = 0;
	//m:????????????????????????substr????1?????0
	int m;

	//?????????
	
	scanf("%s", str);

	scanf("%s", substr);

	scanf("%s", replace);

	//str1:???????   str2??????????   str3???????????
	int str1 = strlen(str), str2 = strlen(substr), str3 = strlen(replace);
	for(int i = 0; i <= str1 - str2; i++)
	{
		//????i?????????????????????m??1
		m = 1; 
		for(int l = 0; l < strlen(substr); l++)
		{
			//??????i?????????????????
			if (str[i + l] != substr[l])
			{
				m = 0;
				break;
			}
		}

		//???i??????????????????
		//???????????????????
		//???????m=1?
		int j;
		if(m)
		{
			k = 1;     //?????????k???1
			//?i????replace??????p[]
			for(j = i; j < i + str3; j++)
				p[j] = replace[j - i];
			//???????str?????????p[]
			for(k = i + str2, i = j; k < str1; k++, i++)
				p[i] = str[k];
			//?????????
			break;
		}
		else
		{
			//?i?????????????str??????p[]
			p[i] = str[i];
		}
	}

	//??substr???str???????????
	//?????????????
	//??k=1
	if(k)
	{
		
		for(int i = 0; i < strlen(str) - strlen(substr) + strlen(replace); i++)
		    printf("%c", p[i]);
	}
	else
	{
		printf("%s", str);
	}
	
	return 0;
}
int main()
{
	char a[256],c[256],l[256],g[20],h[20];
	int b,i,e=0,q,p,j,k;
	gets(a);
	b=strlen(a);
	gets(h);
	gets(g);
	q=strlen(h);
	for(i=0;i<b;i++)
	{
		if(a[i]==h[0])
		{
			p=1;
			for(j=1;j<q;j++)
			{
				if(a[i+j]!=h[j])
				{
					p=0;
					break;
				}
			}
			if(p==1)
			{
				for(k=0;k<i;k++)
				{
					c[k]=a[k];
					c[k+1]='\0';
				}
				l[0]=-1;
				for(k=i+q;k<b;k++)
				{
					l[k-i-q]=a[k];
					l[k-i-q+1]='\0';
				}
				strcat(c,g);
				if(l[0]!=-1)
				{
					strcat(c,l);
				}
				strcpy(a,c);
				b=strlen(a);
				break;
			}
		}
	}
	printf("%s",a);
	return 0;
}
int main ()
{
	char a[256],b[256],c[256];
	scanf("%s",a);
	scanf("%s",b);
	scanf("%s",c);
	for (int i=0;a[i]!='\0';i++)
	{
		int j;
		for (j=0;(b[j]==a[i+j])&&(b[j]!='\0');j++);
		if (b[j]=='\0')
		{
			for (int k=0;k<i;k++) printf("%c",a[k]);
			printf("%s",c);
			for (int k=i+j;a[k]!='\0';k++) printf("%c",a[k]);
			return 0;
		}
	}
	printf("%s",a);
	return 0;
}
int main(int argc, char* argv[])
{
	char s1[300],s2[300],s3[300];
	scanf("%s %s %s",s1,s2,s3);

	int len1,len2;
	len1=strlen(s1);
	len2=strlen(s2);
    
	int i,j,k=0;
	int tag=0,tag1;
      
	
		for(i=0,j=0;j<len1;j++)
		{
			if(tag!=1&&k==0)
		{
			if(s2[i]==s1[j])
			{
				for(k=j+1,i=i+1;i<len2;k++)
				{
					if(s2[i]!=s1[k])
					{
						i=0;
					}

						else
					{
						i++;
						if(i==len2)
						{
							tag=1; tag1=k-len2+1;
						}
					}
				}
			}
		}
			else if(tag!=1&&k==len1) break;
			else if(tag==1) break;


		}
		
		if(tag==0)
		{
			printf("%s",s1);
		}
		else
		{
			int t,m;
			for(t=tag1,m=0;t<tag1+len2;t++)
			{
				s1[t]=s3[m];
				m++;
				if(m==len2)
				{
					break;
				}
			}
			printf("%s",s1);
		}


	


	return 0;
}
void main()
{
	char *p,*q,*r;
	p=(char *)malloc(1000);q=(char *)malloc(1000);r=(char *)malloc(1000);
	gets(p);gets(q);gets(r);
	int a,b,c;
	a=strlen(p);b=strlen(q);c=strlen(r);
	int i,j,k;int t=1;
	for (i=0;i<a;i++)
	{
		for(j=i,k=0;j<i+b;j++,k++)
		{
			if (p[j]!=q[k])
			{t=0;break;}
		}
		if (k==b) break;
	}
	if(k==b)
	{
	for (j=0;j<i;j++)
		printf("%c",p[j]);
	printf("%s",r);
	for (j=i+b;j<a;j++)
		printf("%c",p[j]);
	}
	else printf("%s",p);
}
int main(){
char a[266],s[22],z[22];
gets(a);
gets(s);
gets(z);
int n,i,j,l=1,m,q,w,e;
for(i=0;a[i]!='\0';i++){
	if(s[0]==a[i]){
	l=1;
	m=i;
	for(w=0;s[w]!='\0';w++){
		if(s[w]!=a[i]){
		l=0;}
		i++;}
		
		if(l){
			break;
		}
	}
	}

for(n=0;s[n]!='\0';n++){
1;}
if(l){
		for(j=0;a[j]!='\0';j++){
			if(m==48){m=17;}
			if(j==m){
				for(e=0;z[e]!='\0';e++){
				printf("%c",z[e]);
				}
				j=m+n-1;
			}
			else {
				printf("%c",a[j]);}
		}
}
		
									
	return 0;}
int cmp(int i,char a[],char b[])
{
    int k;
    for(k=0;b[k]!='\0';i++,k++)
    {
        if(a[i]!=b[k])
        break;
    }
    if(b[k]=='\0')
    return 1;
    else
    return 0;
}
main()
{
    int i,n,k;
    char s[256],subs[256],re[256];
    gets(s);
    gets(subs);
    gets(re);
    for(i=0,n=0;n==0&&s[i]!='\0';i++)
    {
        if(s[i]==subs[0])
        n=cmp(i,s,subs);
    }
    if(n==1)
    {
        for(i=i-1,k=0;re[k]!='\0';i++,k++)
        {
            s[i]=re[k];
        }
    }
    printf("%s\n",s);
}
//????
int main(void)
{
	
	char string[256];
	scanf("%s",string);

	char substring[256];
	scanf("%s",substring);

	char replacement[256];
	scanf("%s",replacement);

	int Lsub=0;					//??substring???
	for(int i=0;;i++)
	{
		if(substring[i]=='\0')
		{
			Lsub=i;
			break;
		}
	}							//??substring???

	int Lrep=0;					//??replacement???
	for(int i=0;;i++)
	{
		if(replacement[i]=='\0')
		{
			Lrep=i;
			break;
		}
	}							//??replacement???
	
	int pBegin=check,judge=1;				//?????????
	for(int i=0;i<256-Lsub;i++)
	{
		judge=1;
		for(int j=i;j<i+Lsub;j++)
		{
			if(string[j]-substring[j-i]!=0)
			{
				judge=0;
				break;
			}
			if(j-i==Lsub-1)
			{
				break;
			}
		}
		if(judge==1)
		{
			pBegin=i;
			break;
		}
	}									//?????????
	if(pBegin==check)
	{
		printf("%s",string);
	}

	else
{
    
	char Ans[512];
	for(int i=0;i<pBegin;i++)
	{
		Ans[i]=string[i];
	}

	for(int i=pBegin;i<pBegin+Lrep;i++)
	{
		Ans[i]=replacement[i-pBegin];
	}

	for(int i=pBegin+Lrep;;i++)
	{
		Ans[i]=string[i-(pBegin+Lrep)+pBegin+Lsub];
		if(Ans[i]=='\0')
		{
			break;
		}
	}

	printf("%s",Ans);
}
	return 0;
}
int main()
{
	char org[270] = {0}, sub[100] = {0}, rep[100] = {0}, temp[100] = {0};
	cin >> org >> sub >> rep;
	int i, j, l1 = strlen(org), l = strlen(sub), flag = 0;
	for (i = 0; i < l1; i++)
	{
		for (j = i; j < i+l; j++)
		{
			temp[j - i] = org[j];
		}
		if (strcmp(temp, sub) == 0) {
			flag = 1;
			break;
		}
	}
	if (flag){
		for (int k = 0; k < i; k++) cout << org[k];
		cout << rep;
		cout << org + j << endl;
	}
	else cout << org << endl;
	return 0;
}
int main()
{
	char string[256], subString[256], replacement[256];
	char *n = NULL;
	int l, i;
	memset(string, '\0', sizeof(string));
	memset(subString, '\0', sizeof(subString));
	memset(replacement, '\0', sizeof(replacement));
	cin >> string >> subString >> replacement;
	n = strstr(string, subString);
	l = strlen(subString);
	if (n != NULL)
	{
		for (i = 0; i < l; i++)
		{
			n[i] = replacement[i];
		}
	}
	cout << string << endl;
	return 0;
}
int main()
{
	int i,j,k,l,n=0,m=1,z=0,t=1,g;
	char q[256],p[256],w[256];
	scanf("%s",q);
	scanf("%s",p);
	scanf("%s",w);
	k=strlen(q);l=strlen(p);
	for(i=0;i<k;i++)
	{
		if(p[0]==q[i])
		{
	       for(j=1;j<l;j++)
		   {
			   g=1;
			 if(p[j]!=q[j+i])
				g=0;
		   }
				if(g==1)
				{
					z=1;
					m=i;
					break;
				}
			 	
			
		
		}
	}		
	if(z)
	{
		for(j=0;j<m;j++)
		{
			printf("%c",q[j]);
		}
		printf("%s",w);
		for(j=m+l;j<k;j++)
			printf("%c",q[j]);
	}
	else
		printf("%s",q);
	return 0;
}
//********************************************************
//*  ???:2.cpp                                        *
//*  ??????    1200012948                          *
//*  ????: 2012 12 24                                *
//*  ????:????                                   *
//********************************************************
int main()
{
	int len1, len2, len3, i, j, m, p, flag = 0;
	char str1[300], str2[50], str3[50];
	cin.getline(str1, 300);
	cin.getline(str2,50);
	cin.getline(str3, 50);
	len1 = strlen(str1);
	len2 = strlen(str2);
	len3 = strlen(str3);
	for (i = 0; i <= len1 - len2; i++)
	{
		flag = 0;
		m = i;
		for(j = 0; j < len2; j++)
		{
			if(str1[m++] != str2[j])
				break;
		}
		if(j == len2)    //????????
		{
			for(p = 0; p < i; p++)
				cout << str1[p];
			cout << str3;
			cout << str1 + i + len2 << endl;
			flag = 1;   //????
			break;
		}
	}
	if(flag == 0)
	{
		cout << str1 << endl;
	}
	return 0;
}
int main()
{
	char s[p];
	gets(s);
	int i,j,k,m,x=0;
	char a[p];
	gets(a);
	char b[p];
	gets(b);
	i=strlen(a);
	for(j=0;s[j]!='\0';j++)
	{
		if(a[0]==s[j])
		{
			for(k=1;k<i;k++)
			{
				if(a[k]!=s[j+k])
				{
					break;
				}
			}
		}
		if(k==i)
		{
			for(m=0;m<j;m++)
			{
				printf("%c",s[m]);
			}
			printf("%s",b);
			for(m=i+j;s[m]!='\0';m++)
			{
				printf("%c",s[m]);
			}
			x=1;
			break;
		}
	}
    if(x==0)
	{
		printf("%s",s);
	}
	return 0;
}
main()
{
    int i,j,k,l1,l2,l3,sum;
    char a[100],b[100],c[100];
    scanf("%s",a);
    scanf("%s",b);
    scanf("%s",c);
    sum=0;
    l1=strlen(b);
    l2=strlen(c);
    l3=strlen(a);
    for(i=0;i<l3;i++)
    {
        for(j=i,k=0;k<l1;k++)
        {
            if(a[j]!=b[k])
            break;
            j++;
        }
        if(k==l1&&sum==0)
        {
        for(j=0;c[j]!='\0';j++)
        printf("%c",c[j]);
        i=i+l1-1;
        sum=sum+1;
        }
        else
        printf("%c",a[i]);
    }
}
int main()
{
	char s[257],z[200],h[200],t[100];
	int lens,lenz,lenh,i,j,sum,r,q=0,p=0;
	gets(s);
	gets(z);
	gets(h);
	lens=strlen(s);
	lenz=strlen(z);
	lenh=strlen(h);
	for(i=0;i<lens;i++)
	{
		sum=0;
		for(j=0;j<lenz;j++)
		{
			if(s[i+j]==z[j])
			{
				sum++;
			}
			else
			break;
		}
		if(sum==lenz)
		{
			r=i;
			q=1;
			break;
		}
	}
	if(q==1)
	{
		for(i=0;i<r;i++)
			printf("%c",s[i]);
		printf("%s",h);
		for(i=r+sum;i<lens;i++)
			printf("%c",s[i]);
	}
	else if(q==0)
		printf("%s",s);
	return 0;
}
void main()
{
	char str[3][256],string[512];
	int n,m,k,i,j;
	scanf("%s %s %s",str[0],str[1],str[2]);
	n=strlen(str[0]);
	m=strlen(str[1]);
	k=strlen(str[2]);
	for(j=0;j<n-m+1;j++)
	{
	for(i=0;i<m;i++)
	{
		if(str[1][i]!=str[0][i+j])
			break;
	}
	if(i==m) 
	{
		break;
	}
	}
	if(j<n-m+1)
	{
	for(i=0;i<j;i++)
		string[i]=str[0][i];
	for(i=j;i<j+k;i++)
		string[i]=str[2][i-j];
	for(i=j+k;str[0][i-k+m]!='\0';i++)
		string[i]=str[0][i-k+m];
	string[i]='\0';
	printf("%s",string);
	}
	else
		printf("%s",str[0]);
}
int main()
{char *p1,*p2,*p3,*q1,*q2;
 int i,j,k,flag;
 p1=(char*)malloc(sizeof(char)*256);
 p2=(char*)malloc(sizeof(char)*256);
 p3=(char*)malloc(sizeof(char)*256);
 q1=(char*)malloc(sizeof(char)*256);
 q2=(char*)malloc(sizeof(char)*256);
 gets(p1);gets(p2);gets(p3);
 for(i=0;i<strlen(p1);i++)
 {flag=1;
  for(j=0;j<strlen(p2);j++)
  if(*(p1+i+j)!=*(p2+j)) {flag=0;break;}
  if(flag)
  {for(k=0;k<i;k++)
   *(q1+k)=*(p1+k);
   *(q1+k)='\0';
   for(k=i+strlen(p2);k<strlen(p1);k++)
   *(q2+k-i-strlen(p2))=*(p1+k);
   *(q2+k-i-strlen(p2))='\0';
   break;}
  }
 if(flag){
 strcat(q1,p3);
 strcat(q1,q2);
 puts(q1);}
 else
 puts(p1);
}
int main()
{
	int n;
	char a[100],b[100],c[100];
	scanf("%s",a);
	scanf("%s",b);
	scanf("%s",c);
	n = strlen(b);
	int i = 0;
	while(a[i]!='\0')
	{
		int m = 0;
		while(m<n)
		{
			if (a[i+m] == b[m])
				m++;
			else
				break;
		}
		if(m == n)
		{
			int p = 0;
			while(p<i)
			{
				printf("%c",a[p]);
				p++;
			}
			printf("%s",c);
			p = p + n;
			while(a[p] != '\0')
			{
				printf("%c",a[p]);
				p++;
			}
			break;
		}
	i++;
	}
	if(a[i] == '\0')
		printf("%s",a);
	return 0;
}
int main()
{
	int ls1,ls2,ls3,i,j=0,m,lans=0,z=0;
	char s1[100],s2[100],s3[100],ans[100];
	scanf("%s",s1);
	scanf("%s",s2);
	scanf("%s",s3);
	ls1=strlen(s1);
	ls2=strlen(s2);
	ls3=strlen(s3);
	for(i=0;i<ls1;i++)
	{
		
		if(s1[i]!=s2[0])ans[lans++]=s1[i];
		else
		{
			for(j=0,m=i;j<ls2;j++,m++)
		{
			if(s1[m]!=s2[j])break;
		}
		if(j==ls2 && z!=1)
		{
			i=m-1;
			for(j=0;j<ls3;j++)
				ans[lans++]=s3[j];
			z++;
		}
			else 
			{
				for(;i<=m;i++)
				ans[lans++]=s1[i];
				i--;
			}

		}
	}
			ans[lans]='\0';
			printf("%s",ans);
    return 0;
}
void main() 
{
    char str[600]; 
    char sub[300], rep[300];
    int i, j, k, sun00=0, se=0;
  
    gets(str);
    gets(sub);
    gets(rep);
  
    for (i=0; str[i]!=0; i++) 
	{
   
        if (str[i]==sub[0]) 
		{
       
            for (k=i+1,j=1;str[k]!=0&&sub[j]!=0;k++,j++) 
			{
                if (str[k]!= sub[j]) 
				{
                    break;
                }
            }
            if (sub[j] == 0) 
			{
             
                sun00 = i; 
                se = k; 
                break;
            }
        }
    }
  
    if (sun00 < se) {
        if (strlen(sub) <= strlen(rep)) 
		{
           
            for (i=sun00,j=0; rep[j]!=0; i++,j++) 
			{
                str[i] = rep[j];
            }
           
            for (k=se; str[k]!=0; k++,i++) 
			{
                str[i] = str[k];
            }
          
            str[i] = 0;
        }
        else {
           
            i=strlen(str)+strlen(rep)-strlen(sub);
            for (k=strlen(str); k>=se; k--,i--) 
			{
                str[i] = str[k];
            }
           
            for (i=sun00,j=0; rep[j]!=0; i++,j++) 
			{
                str[i] = rep[j];
            }
        }
    }
    
    printf(str);
 
}
int main(){
	char str[257],sub[257],rep[257];
	int i,r1,r2,r3,j,q,h=0,result=0;
	scanf("%s",str);
	scanf("%s",sub);
	scanf("%s",rep);
	r1=strlen(str);
	r2=strlen(sub);
	r3=strlen(rep);
    for(i=0;i<r1;i++){
		if(str[i]==sub[0]){
			for(j=0;j<r2;j++){
				if(str[i+j]!=sub[j])
					break;
			}
			if(j==r2){
				result=1;
				for(q=i;q<i+r3;q++){
					str[q+r3]=str[q+r2];
					str[q]=rep[h];
					h++;
				}
				printf("%s",str);
				break;
			}
		}

	}
	if(result==0)
		printf("%s",str);
	return 0;
}
int main(){
	char y[256],z[256],h[256],sc[256];
    gets(y);
	gets(z);
	gets(h);
	int k=0,count=0,o;
	int a=strlen(y);
	int b=strlen(z);
	int c=strlen(h);
	for(int i=0;i<a;i++){
		if(y[i]==z[k]){
			k++;
			count++;
			if(count==b){
			   break;
			}
		}else if(count!=b){
			if(count>0){
				i--;
			}
			count=0;
			k=0;
		}
		o=i;
	}
	int e=o-k+2;
	int f=0;
	for(int m=0;m<a;m++){
		if((m>=e)&&(m<e+c)){
			 sc[m]=h[f];
			 f++;
		}else{
			 sc[m]=y[m];
		}
	}
	for(int l=0;l<a;l++){
   	     printf("%c",sc[l]);
	}
	return 0;
}
int main()
{
	char s[N],w[N],h[N];
	int len_1,len_2,len_3,i,j,k=0;
	scanf("%s",s);
	scanf("%s",w);
	scanf("%s",h);
	len_1=strlen(s);
	len_2=strlen(w);
	len_3=strlen(h);
	for(j=0;j<len_1;j++)
	{
		if(s[j]==w[0])
		{
			for(i=1;i<len_2;i++)
				if(s[j+i]!=w[i])
					break;
				if(i==len_2)
				{
					k=1;
					break;
				}
		}
	}
				if(k)
				{
					for(k=0;k<j;k++)
						printf("%c",s[k]);
					for(k=0;k<len_3;k++)
						printf("%c",h[k]);
					for(k=j+len_3;k<len_1;k++)
						printf("%c",s[k]);
					printf("\n");
				}
				else
				{
					printf("%s",s);}
				return 0;
}
int main()
{
    char string[256], substring[256], replacement[256], buffer[256]={0}, result[256]={0};
    scanf("%s %s %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 str[1000], sub[500], rep[500];
	int n, m, cut, i = 0, flag = 0;
	cin >> str >> sub >> rep;
	n = strlen(str);
	m = strlen(sub);
	cut = strlen(rep);
	while(str[i] != '\0')
	{
		if(str[i] == sub[0])
		{
			int j = 0;
			int k = i;
			while(sub[j] != '\0')
			{
				if(sub[j] == str[k])
				{
					j++;
					k++;
				}
				else
					break;
			}
			if(j == m)
			{
				for(int t = n-1; t >= i + m; t--)
				{
					str[t + cut - m] = str[t];
				}
				str[n  + cut - m ] = '\0';
				for(int t = i; t < i + cut ;t++)
				{
					str[t] = rep[t-i];
				}
				flag = 1;
			}
			if(flag == 1)
				break;
		}
		i++;
	}
	cout<<str;
	return 0;
}
int main (){
    int i,k,n,m,L,l1,l2;
    char s[1000],a[300],b[300];
    scanf("%s",s);
    scanf("%s",a);
    scanf("%s",b);
    getchar();
    L=strlen(s);
    l1=strlen(a);
    l2=strlen(b);
    n=0;
    for (i=0;i<L;i++){
        if ( a[0]==s[i] ){
             n++;
             for ( k=1; k<l1; k++){
                 if ( s[i+k]==a[k]){
                      n++;
                 } else {
                        n=0;
                        break;
                 }
             }
        }
        if ( n==l1){
             break;
        }
    }
    for (k=0;k<i;k++){
        printf("%c",s[k]);
        getchar();
    }
    for ( k=0;i!=L&&k<l2;k++){
        printf("%c",b[k]);
        getchar();
    }  
    for ( k=i+l1;i!=L&&k<L;k++){
        printf("%c",s[k]);
        getchar();
    }
    return 0;
}
int main()
{
	int len,i,j,a=0;
	char str[256],sub[256],rep[256],word[256];
	gets(str);
	gets(sub);
	gets(rep);
	len=strlen(sub);
	for(i=0;str[i]!=0;i++){
		if(str[i]==sub[0]){
			for(j=0;j<len;j++){
				word[j]=str[i+j];
			}
			word[len]='\0';
			if(strcmp(word,sub)==0){
				strcpy(word,rep);
				for(j=0;j<i;j++){
					printf("%c",str[j]);
				}
				printf("%s",word);
				for(j=i+len;str[j]!=0;j++){
					printf("%c",str[j]);
				}
				a=1;
				break;
			}
		}
	}
	if(a==0){
		printf("%s",str);
	}
	return 0;
}
int main()
{
	char str[256];
	char sub[256];
	char rep[256];
	cin >> str >> sub >> rep;
	int len = strlen(sub);
	int i = 0;
	char *p, *q, *r;
	p = strstr(str, sub);
	q = rep;
	if (p != NULL)
	{
	for (r = p; r < p + len; r++)
		*r = *q++;
	}
	cout << str << endl;
	return 0;
}
main()
{
      char a[300],b[300],c[300],d[300],f[300],h[300];int i,m,n=0,t,g,e[3];
     scanf("%s",a);
       scanf("%s",b);
     scanf("%s",c);
      for(m=0;m<290;m++)
      {if(a[m]=='\0')break;e[0]=m+1;}
      for(m=0;m<290;m++)
      {if(b[m]=='\0')break;e[1]=m+1;}
      for(m=0;m<290;m++)
      {if(c[m]=='\0')break;e[2]=m+1;}
      for(i=0;i<=e[0]-e[1];i++)
      {for(t=0;t<e[1];t++)
         {if(a[i+t]==b[t])n++;else n=0;}
      if(n==e[1]){g=i;break;}
      }
      if(n==0)printf("%s",a);
      else
      {for(i=0;i<g;i++)
      {d[i]=a[i];printf("%c",d[i]);}
     for(i=0;i<e[2];i++)
      {printf("%c",c[i]);}
      for(i=0;i<e[1];i++)
      f[i]=a[i+g];
      for(i=0;i<e[0]-e[1]-g;i++)
      {h[i]=a[g+e[1]+i];printf("%c",h[i]);}}
      
      getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();
}
int main(){
    char s[256],w[256],z[256];
    int ls,lw,t,lz;
    int i,j,loc=-1;
    scanf("%s%s%s",w,s,z);
    ls=strlen(s);
    lw=strlen(w);
    lz=strlen(z);
    for(i=0;i<lw;i++){
                  t=0;
                  for(j=0;j<ls;j++){
                                    if(w[i+j]==s[j])
                                    t++;
                                    }
                  if(t==ls){
                  loc=i;
                  break;
                 }
    }

    if(loc!=-1){
    for(i=0;i<loc;i++){
                       printf("%c",w[i]);
                       }


    printf("%s",z);
    for(i=loc+lz;i<lw;i++){
                         printf("%c",w[i]);
                         }
    }
    else{
         puts(w);
         }
                      
                         
                          
    
        return 0;
}
int main()
{
   int i,n,k,m,j,tag=1,jieshu=1;
   char zfc[257],dth[257],bth[257],danci[257];
   int zhyw=0;
    gets(zfc);
	gets(dth);
	gets(bth);
    n=strlen(zfc);
    m=strlen(dth);
  for(i=0;i<n;i++) 
  {             
        if(zfc[i]==dth[0])
        {
             for(k=1;k<m;k++)
             {
               if(zfc[i+k]!=dth[k])
                   tag=0;
             } 
             if(tag)
             {
                printf("%s",bth);
                for(j=i+m;j<n;j++)
                  printf("%c",zfc[j]);
                jieshu=0;  
                  
             }
              tag=1; 
        }  
        if(jieshu)
        {
              printf("%c",zfc[i]);
              
        }
        if(jieshu==0)
         break;      
  }         
       
     return 0;
}
int main()
{
char str[256],sub[256],rep[256];
scanf("%s%s%s",str,sub,rep);
int m,n,i,j,e,k;
n=strlen(str);
m=strlen(sub);
for(i=0;i<n;i++)
{
e=0;
for(j=0;j<m;j++)
{
if(str[i+j]==sub[j])e++;
}
if(e==m)break;
}
if(e==m)
{
for(k=0;k<i;k++)printf("%c",str[k]);
printf("%s",rep);
for(k=i+m;k<n;k++)printf("%c",str[k]);
}else{printf("%s",str);}
return 0;
}
int main()
{
	char string[256] , substring[256] , replacement[256] ; 
		cin >> string >> substring >> replacement;
		int i , j = 0 , length1 , length2 , m , num = 0;
		length1 = strlen(string);
		length2 = strlen(substring);
		for(i = 0 ; i < length1 ; i++)
		{
			m = i;
			if(string[i] == substring[j])
			{
				
				for(j = 0 ; j < length2 ; j++)
				{
					if(string[i] == substring[j])
					{
						i++;
						num++;
					}
				}
			}
			j = 0;
			i = m;
			if(num == length2)
			{
				for(j = 0 ; j < length2 ; j++)
				{
					string[i] = replacement[j];
					i++;
				}
			break;
			}
			num = 0;
		}
		cout << string <<endl;
		return 0;
}
void main()
{
	int a,b,c,i,j,k,m;
	char s[256],s1[256],s2[256];
	gets(s);
	gets(s1);
	gets(s2);
	a=strlen(s);
	b=strlen(s1);
	c=strlen(s2);
	for(i=0;i<a;i++)
	{
		if(s[i]==s1[0])
		{
			for(j=0;j<b;j++)
			{
				if(s[i+j]!=s1[j])break;
			}
			if(s[i+b-1]==s1[b-1])
			{
				m=i;
				for(k=0;k<m;k++)
					printf("%c",s[k]);
					printf("%s",s2);
					for(k=i+b;k<a;k++)
						printf("%c",s[k]);
					break;
			}
		}
	}
	if(i==a)printf("%s",s);
}
int main(int argc, char* argv[])
{
	int i,j,k=0,l,m0,m1,a[100],flag=0;
	char str[3][300];
    for(i=0;i<3;i++)
		scanf("%s",str[i]);
	m0=strlen(str[0]);
	m1=strlen(str[1]);
	for(i=0,j=0;i<m0,j<m1;i++)
	{
		if(str[0][i]==str[1][j])
		{
			j++;
			flag++;
			if(flag==m1)
			{
				k=i-m1;
				break;
			}
		}
		else
		{
			j=0;
			flag=0;
		}
	}
		if(flag==m1)
		{
			for(i=k+1,j=0;i<k+m1+1;i++,j++)
				str[0][i]=str[2][j];
			printf("%s",str[0]);
		}
		else
			printf("%s",str[0]);
		return 0;
}
int main(){
    char a[256],b[256],c[256];
    int i,j=0,k=-1,n,p,q,s,h=0,r;
    int d[256];
    scanf("%s",a);
    scanf("%s",b);
    scanf("%s",c);
    for(i=0;i<256;i++){
                       if(a[i]==b[0]){
                                      k=0;
                                      d[j]=i;
                                      j+=1;
                                      }
                       }
    n=strlen(b);
    p=strlen(c);
    q=strlen(a);
    if(k!=-1){
              for(s=0;s<j;s++){
              for(i=d[s];i<d[s]+n;i++){
                                       r=d[s];
                                       if(a[i]!=b[i-r]){
                                                        h+=1;
                                                         break;
                                                        }    
                                       }
              if(i==d[s]+n){
                         for(r=0;r<d[s];r++){
                                          printf("%c",a[r]);
                                          }
                         for(r=0;r<p;r++){
                                          printf("%c",c[r]);
                                          }
                         for(r=d[s]+n;r<q;r++){
                                            printf("%c",a[r]);
                                            }
break;
                         }
                         }
              if(h==j){
                       printf("%s",a);
                       }
              }
    else {
         printf("%s",a);
         }
    return 0;
}
int main()
{
	int i,j,k=1,t;
	char s1[256],s2[256],s3[256];
	gets(s1);
	gets(s2);
	gets(s3);
	for(i=0;s1[i]!='\0';i++)
		if(s1[i]==s2[0])
		{
			for(j=1;s2[j]!='\0';j++)
				if(s2[j]==s1[i+j]) k++;
			if(s2[k]=='\0')
			{
				for(t=0;t<i;t++) printf("%c",s1[t]);
				for(t=0;t<k;t++) printf("%c",s3[t]);
				for(t=i+k;s1[t]!='\0';t++) printf("%c",s1[t]);
				printf("\n");
				break;
			}
		}
	if(s2[k]!='\0') printf("%s\n",s1);
	return 0;
}
int main( ){
        char str[256],zc[50],th[50];
		int i,j,t=0,n,m;
		gets(str);
		gets(zc);
		gets(th);
        n=strlen(zc);
		m=strlen(th);
		for(i=0;str[i]!='\0';i++){
			if(str[i]==zc[0]){
				for(j=1;j<n;j++){
					if(str[i+j]==zc[j]){
					   j++;
					   t=1;
					   continue;}
					else
						t=0;
						break;
				}
			}
			if(t){
				for(j=0;j<m;j++){
				str[i+j]=th[j];
				}
			
			   break;			
			}
		
		}

		puts(str);
     
        
       
        return 0;
}