semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
    char zfc[256],zc[256],re[256],dc[256][256];
    scanf("%s%s%s",zfc,zc,re);
    int len1,len2,i;
    len1=strlen(zfc);
    len2=strlen(zc);
    int j,k,tag=0,m,a;
    for(i=0;zfc[i+len2-1]!='\0';i++){
          k=i;
         for(j=0;j<len2;j++,k++){
                             dc[i][j]=zfc[k];
         }
    }
    for(i=0;zfc[i+len2-1]!='\0';i++){
           if(strcmp(dc[i],zc)==0){
                    tag=1;
                    m=i;
                    break;
             }
      }
    
    if(tag==0){
               printf("%s\n",zfc);
               }
    else{
         for(i=0;i<m;i++){
                           printf("%c",zfc[i]);
                           }
         for(i=m;i<m+len2;i++){
                               printf("%s",re);
                               break;
                               }
         for(i=m+len2;zfc[i]!='\0';i++){
                                        printf("%c",zfc[i]);
                                        }
    }
    scanf("%d",&a);
     return 0;
}
int main (){
	char sz[266];
	int i,k,len,n,m,j=0;
	char yuan[20],mb[20],kd[20];
	scanf("%s %s %s",sz,yuan,mb);
	m=strlen(sz);
	n=strlen(yuan);
	for(i=0;i<m;i++){
		if(sz[i]!=yuan[0]){
			printf("%c",sz[i]);
		}
		else{
			for(k=i;k<i+n;k++){
				kd[k-i]=sz[k];
			}
			    kd[n]='\0';
		
	    	if(strcmp(kd,yuan)==0){
				printf("%s",mb);
				for(k=i+n;k<m;k++){
	             	printf("%c",sz[k]);
				}
             break;
			
			}
			else{
				printf("%c",sz[i]);
			}
		
		}
		
	}

	

	return 0;
}
int main()
{
	int i=0,j=0,k=0,m=0,n,l;
	char s[256],a[100],b[100];
	gets(s);gets(a);gets(b);
	for(i=0;i<strlen(s);i++)
	{
		if(s[i]==a[0])
		{
			k=i;l=i;
			for(j=0;j<strlen(a);j++,k++)
			{
				if(a[j]!=s[k])
				{break;}
			}
			if(j==strlen(a))
			{m=1;
				break;
			}
		}
	}
	if(m==1)
	{
		for(i=0;i<l;i++)
		{printf("%c",s[i]);}
		printf("%s",b);
		for(n=l+strlen(a);n<strlen(s);n++)
		{printf("%c",s[n]);}
	}
	else if(m==0){printf("%s",s);}
	return 0;
}
int main()
{
	char sentence[256], sub_sen[256], replacement[256];
	cin.getline(sentence, 256);
	cin.getline(sub_sen, 256);
	cin.getline(replacement, 256);
	char *p;
	p = strstr(sentence, sub_sen);
	if(!p)
		cout << sentence << endl;
	int i;
	int length = strlen(sub_sen);
	if(p)
	{
		for(i = 0; i < p - sentence; i++)
			cout << sentence[i];
		cout << replacement;
		cout << p + length << endl;
	}
	return 0;
}
int main(){
	char a[300],b[300],c[300],d[100][100];
	int la,lb,i,j,x=0,m=0,wz;
	gets(a);
    gets(b);
	gets(c);
	la=strlen(a);
	lb=strlen(b);
	for(i=0;i<la;i++){
	    if(a[i]==b[0]){
			m=0;
			wz=i;
			for(j=0;j<lb;j++){
				if(a[i+j]!=b[j]){
					i=i+j-1;
					break;
				}
				else
					m++;
			}
		}
		if(m==lb){
			for(j=0;j<wz;j++){
				d[0][j]=a[j];
				d[0][wz]='\0';
			}
			for(j=wz+lb;j<la;j++){
				d[1][j-wz-lb]=a[j];
				d[1][la-wz-lb]='\0'; 
			}
			break;
		}
	}
	if(m>0){
	if(wz==0)
		strcpy(d[0],c);
	else
      strcat(d[0],c);
	if(wz+lb==la)
      	puts(d[0]);
    else{
		strcat(d[0],d[1]);
		puts(d[0]);
	}
	}
	else
		puts(a);
	return 0;
}
int main(){
	char str[257],substr[257],re[257];
	int i=0,j=0,n=0,m=0,k=0;
	scanf("%s\n%s\n%s\n",str,substr,re);
    n=strlen(substr);
	for(i=0;str[i]!='\0';i++){
		if(str[i]==substr[j]){
		
			if(memcmp(substr,str+i,n)==0){
				m=i;
				k=1;
				break;
			}
		}
	}
	if(k==1){
      for(i=m;i<m+n;i++){
		str[i]=re[i-m];
	  }
	}
	
	printf("%s",str);
	return 0;
}
int main()
{
int i,n,j,n1,k,sum=0;
char a[257],b[257],c[257];
gets(a);
gets(b);
gets(c);
n=strlen(a);
n1=strlen(b);
for(i=0;i<n-n1+1;i++)
{
sum=0;
for(j=i,k=0;j<i+n1;j++,k++)
{
if(a[j]!=b[k])
sum=1;
}
if(sum==0)
{
for(j=i,k=0;j<i+n1;j++,k++)
a[j]=c[k];
break;
}
}
printf("%s",a);
return 0;
}
int main(){ 
  int m=0,k,a,b,c,i,j;
  char s[3][256];
  scanf("%s",&s[0]);
  scanf("%s",&s[1]);
  scanf("%s",&s[2]);
  a=strlen(s[0]);
  b=strlen(s[1]);
  c=strlen(s[2]);
  for(i=0;i<a;i++){
	  for(j=0;j<b;j++){
		  if(s[0][i+j]==s[1][j]){
			m++;
		  }
	  }
	  if(m==b){
		  break;
	  }
	  m=0;
  }
  if(i==a){
	printf("%s",s[0]);
  }
  else{
	  for(k=0;k<i;k++){
		printf("%c",s[0][k]);
	  }
	  for(k=0;k<c;k++){
		printf("%c",s[2][k]);
	  }
	  for(k=i+b;k<a;k++){
		printf("%c",s[0][k]);
	  }
  }
	return 0;
 }
main()
{
      char string[LIU+1],substring[LIU+1],replacement[LIU+1],out[LIU+1];
      int h,i,j,k,n,l,lsub,lreplace,count,heihei=0;
      gets(string);
      gets(substring);
      gets(replacement);
      l=strlen(string);lsub=strlen(substring);lreplace=strlen(replacement);
      for(i=0,n=0;i<l;i++,n++)
      {
              count=0;
              for(j=0;(j<lsub)&&(heihei==0)&&(string[i+lsub-1]!='\0');j++)
              {
                          if(string[i+j]==substring[j])
                          count++;
              }
              if(count==lsub)
              {
                          heihei=1;
                          for(k=0;k<lreplace;k++,n++)
                          {
                                 out[n]=replacement[k];
                          }
                          i=i+lsub-1;n--;
              }
              else
              out[n]=string[i];
      }
      out[l+lreplace-lsub]='\0';
      printf("%s\n",out);
      getchar();
      getchar();
      return 0;
}
int main()
{
	int ls,lo,lr,i,j,k,flag;
	char str[257],org[257],rep[257];
	gets(str);
	gets(org);
	gets(rep);
	ls=strlen(str);
	lo=strlen(org);
	lr=strlen(rep);
	for(i=0;i<=ls-lo;i++)
	{
		flag=1;
		for(j=0;j<lo;j++)
		{
			if(str[i+j]!=org[j])
			{
				flag=0;
				break;
			}
		}
		if(flag==1)
		{
			for(k=0;k<i;k++)
				printf("%c",str[k]);
			for(k=0;k<lr;k++)
				printf("%c",rep[k]);
			for(k=i+lo;k<ls;k++)
				printf("%c",str[k]);
			return 0;
		}
	}
	puts(str);
	return 0;
}
int main(){
	int i,e=0,j,n,m;
	char s[256],a[256],b[256];
	
	gets(s);
	gets(a);
	gets(b);
	char *pa=a,*ps=s,*p;
	n=strlen(s);
	m=strlen(a);
	for(i=0;*ps!='\0';ps++,i++){
		if(*pa==*ps){
			e++;
			for(pa=pa+1,ps=ps+1;*pa!='\0';pa++,ps++){
				if(*pa==*ps){
					e++;
				}
			
			}
		}
	   
		if(e==m){
			
           
            p=s;
			for(j=0;j<i;j++){
				printf("%c",*p);
				p++;
			}
			printf("%s",b);
			if(n-i>m){
				for(j=0;j<m;j++){
					p++;
				}
				printf("%s",p);
			    break;
			}
			else{
				break;
			}
		}
		else{
			if(e>0){
			pa=a;
			for(j=0;j<m;j++){
			   ps--;
			}
			}
		}
		e=0;
	}

	if(e!=m){
		printf("%s",s);
	}
	return 0;
}
int main()
{
	int i,j,l1,l2,l3,e=0,sum=0;
	char s[300],z[300],h[300];
	scanf("%s",s); 
	scanf("%s",z);
	scanf("%s",h);
	l1=strlen(s);  
	l2=strlen(z);
	l3=strlen(h);
	for (i=0;i<=l1-l2;i++)
	{  
		e=0;
		for (j=0;j<l2;j++)
		{
			if(z[j]==s[j+i])
			{
			  e++;
			}

		} 
	
		if (e==l2)
		{
			for (j=0;j<i;j++)
			{
			  printf("%c",s[j]);
			}
			for (j=0;j<l3;j++)
			{
			   printf ("%c",h[j]);
			}
			if (i+l2<l1-1)
			{
				for (j=i+l2;j<l1;j++)
				{
			       printf("%c",s[j]);
				}
			}
			sum++;
	       break;
		}
	}
	if(sum==0)
	{
	  for (i=0;i<l1;i++)
	  {
	     printf("%c",s[i]);
	  }
	}
	return 0;
}
int main(){
	char zfc[101],sor[101],rep[101];
	int dec,i,j;
	gets(zfc);
	scanf("%s",sor);
	scanf("%s",rep);
	int n=strlen(zfc);
	int k=strlen(sor);
	for(i=0;i<n-k+2;i++){
		dec=0;
		for(j=i;j<=i+k-1;j++){
			if(zfc[j]!=sor[j-i]){
				dec=1;
				break;
			}
		}
		
		if(dec==0){
			printf("%s",rep);
			break;
		}
		else if((i!=n-1)&&(dec!=0)){
			printf("%c",zfc[i]);
			continue;
		}
		else if((i==n-1)&&(dec!=0)){
			printf("%c\n",zfc[i]);
		}
	}
	if(i==n-k+2){
		printf("%s\n",&(zfc[i]));
	}
	else{
		printf("%s\n",&(zfc[i+k]));
	}
	
	
	
	return 0;
}
void main()
{
	char str[300],sub[300],rep[300],tmp[300];
	scanf("%s%s%s",str,sub,rep);
	int i,j,l1=strlen(str),l2=strlen(sub),l3=strlen(rep);
	int flag=0;
	for(i=0;i<l1;i++)
	{
		for(j=0;j<l2;j++)
		{
			tmp[j]=str[j+i];
		}
		tmp[l2]='\0';
		if(strcmp(tmp,sub)==0&&flag==0) {printf("%s",rep);flag=1;i+=l2-1;}
		else printf("%c",str[i]);
	}
	printf("\n");
}
int main(){
    char a[50];
	char b[256];
	char news[50];
	int i,c,wz=500,x=0,d=0;
	char st[100],en[100];

    scanf("%s",b);
	   
	scanf("%s",a);
	scanf("%s",news);
   
	for(i=0;i<strlen(b);i++){
		x=0;
		if(a[0]==b[i]){
			for(c=i+1;c<strlen(a)+i;c++){
				if(a[c-i]==b[c]){
				    x++;
					
				}
			}
			if(x==strlen(a)-1){
				    wz=i;
					break;
					
				
			}
		}
	}

 if(wz!=500){
		for(i=0;i<wz;i++){
		    st[i]=b[i];
		}
		st[i]='\0';

		for(i=wz+strlen(a);i<strlen(b);i++){
			en[i-wz-strlen(a)]=b[i];    
		}
		en[i-wz-strlen(a)]='\0';
		strcat(st,news);	   
		strcat(st,en);
		puts(st);
	
	}	
else if(wz==500){

	puts(b);
}
	return 0;
}
int main()
{
	char s1[500],s2[20],s3[20];
	int i,j,len1,len2,count,c=0;
	
	gets(s1);
	gets(s2);
	gets(s3);
	len1=strlen(s1);
	len2=strlen(s2);
	
	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)
		{
			for (j=0;j<len2;j++)
				s1[i+j]=s3[j];
			c++;
		}
		if (c==1)
			break;
	}
	puts(s1);
	return 0;
}
main()
{
      char s[256],sub[256],re[256],sl[256];
      int n,m,i,j,k,e,l;
      scanf("%s",&s);
      scanf("%s",&sub);
      scanf("%s",&re);
      l=0;
      while(s[l]!='\0') l++;
      m=0;
      while(sub[m]!='\0')m++;
      n=0;
      while(re[n]!='\0') n++;
      for(i=0;i<l;i++)
          {
             k=1;
             for(j=0;j<m;j++) 
                  if(s[i+j]!=sub[j])  
                  {
                      k=0; 
                      break;
                      }
             if(k==1) 
                  {
                    e=i;
                    break;
                    }
             }
      if(k==1)               
      {
         for(i=e+m-1;s[i]!='\0';i++) sl[i]=s[i];
         sl[i+1]='\0';    
         for(i=0;i<n;i++)
             s[e+i]=re[i];
         for(i=e+n;sl[i-n+m]!='\0';i++)
             s[i]=s[i-n+m];
         s[i+1]='\0';      
         }
      for(i=0;s[i]!='\0';i++) printf("%c",s[i]);
      printf("\n");
      getchar();
      getchar();
      }
int main(int argc, char* argv[])
{
	char w[256],s[256],r[256];
	int len1,len2,len3,i,j,k;
	scanf("%s\n",w);
	scanf("%s\n",s);
	scanf("%s",r);
	len1=(int)strlen(s);
	len2=(int)strlen(w);
	len3=(int)strlen(r);
	for(i=0;i<len2;i++)
	{
		if(w[i]==s[0])
		{
			for(j=1;j<len1;j++)
			{
				if(s[j]!=w[i+j])
				{
					break;
				}
			}
		}
		if(j==len1)
		{
			for(k=0;k<len3;k++)
			{
				w[i+k]=r[k];
			}
			break;
		}

	}
	printf("%s",w);


	return 0;
}
void main()
{
	int i,j,t;
	char string[256]={0};
	char substring[256]={0};
	char replacement[256]={0};
	scanf("%s",string);
	scanf("%s",substring);
	scanf("%s",replacement);
	for(i=0;i<strlen(string);i++)
	{
		t=0;
		if(substring[0]==string[i])
		{
			for(j=0;j<strlen(substring);j++)
			{
				if(substring[j]==string[i+j]) t++;		
			}
		}
		if(t==strlen(substring)) 
		{
			break;
		}
	}
	if(i<strlen(string)-1)
	{
	for(j=0;j<strlen(substring);j++)
	{
		string[j+i]=replacement[j];
	}
	}
	printf("%s",string);
}
//*********************
//function:????
//date:2012/12/28
//writer:???
//*********************
int main()
{
	char a[300], b[300], replace[300];
	cin >> a >> b >> replace;
	char *p;
	int alen, blen, relen, i, j;
	p = strstr(a, b);//????
	if (p == NULL)//????
		cout << a << endl;
	else//???
	{
		alen = strlen(a);
		blen = strlen(b);
		relen = strlen(replace);
		for (i = 0;&a[i] != p;i++)//????
			cout << a[i];
		cout << replace;
		i += blen;
		for (;i < alen - blen + relen;i++)
			cout << a[i];
		cout << endl;
	}
	return 0;
}
int main()
{	int a,i,j,m,k,p;
	char r[257],s[257],w[257];
	scanf("%s",w);
	scanf("%s",s);
	scanf("%s",r);
	a=strlen(s);
	p=0;
	for(i=0;w[i];i++)
	{	
		if(w[i]==s[0])
		{	m=0;
			for(j=0;j<a;j++)
			{	if(w[i+j]==s[j])
				{	m=m+1;
				}
			}
			if(m==a)
			{	p=p+1;
				for(k=0;k<a;k++)
				{	w[i+k]=r[k];
				}
				printf("%s",w);
				break;
			}
		}
	}
	if(p==0)
	{	printf("%s",w);
	}
	return 0;
}
int main()
{
  char s[100],d[100];
  char *p,c[100],c1[100],c2[100];
  int i,k,ls,lc;
  gets(s);
  gets(c);
  gets(d);

  p=strstr(s,c);
  ls=strlen(s);
  lc=strlen(c);
  int lsc=p-s;
  if(p)
  {
	  for(i=0;i<lsc;i++){
		  c1[i]=s[i];
	  }
	  c1[i]='\0';
	  k=0;
	  for(i=i+lc;i<ls;i++,k++){
		  c2[k]=s[i];
	  }
	  c2[k]='\0';
	  printf("%s",c1);
	  printf("%s",d);
	  printf("%s",c2);
  }
  else
	  printf("%s",s);

  return 0;
}
int main()
{
	char str[256];
	char sta[256];
	char stb[256];
	char res[512] = "";

	gets(str);
	gets(sta);
	gets(stb);
	
	char* a = str;
	char* b = 0;

	if(b=strstr(a,sta))
	{
		strncat(res,a,b-a);
		strcat(res,stb);
		a = b+strlen(sta);
	}

	strcat(res,a);

	printf("%s\n",res);

	return 0;
}
int main()
{
	char a[100],b[100],c[100],d[100],e[1],tmp;
	gets (a);
	gets (b);
	gets (c);
	int i,j,k,l,m,n;
	l=strlen (a);
	m=strlen (b);
	i=0;
	while(i<l)
	{
		sprintf(e,"%c",a[i]);
		strcpy(d,e);
		for(k=1;k<m;k++)
		{
			sprintf(e,"%c",a[i+k]);
			strcat(d,e);
		}
		k=strcmp(d,b);
		if(k==0)
		{
			printf("%s",c);
			i=i+m;
			break;
		}
		else
		{
		printf("%c",a[i]);
		i++;
		}
	}
	while(i<l)
	{
		printf("%c",a[i]);
		i++;
	}
	return 0;
}
int main()
{
	char string[256],substring[256],replacement[256],final[500];
	int i,j,k,length,length1,length2,a,flag=0;
	scanf("%s",string);
	scanf("%s",substring);
	scanf("%s",replacement);
	length=strlen(string);
	length1=strlen(substring);
	length2=strlen(replacement);
	for(i=0,j=0; string[i]!= '\0';i++)
	{
		if(string[i]==substring[j])
		{
			a=i;
			if(string[a+1]==substring[j+1])	
			{
				flag=1;
				break;
			}
		}
	}
	if(flag==1)
	{
		for(k=0;k<=a-1;k++)
			*(final+k)=*(string+k);
		for(k=a;k<a+length2;k++)
			*(final+k)=*(replacement+k-a);
		for(k=a+length2;k<length+length2-length1;k++)
			*(final+k)=*(string+k+length1-length2);
		*(final+length+length2-length1)='\0';
		for(k=0;final[k]!='\0';k++)
			printf("%c",final[k]);
	}
	else if(flag==0)
	{
		for(i=0,j=0; string[i]!= '\0';i++)
			printf("%c",string[i]);
		return 0;
	}
	return 0;
}
int main()
{
    char str[1000],substr[1000],replace[1000];
    char *p,*q,*r,*start;
    int len;
    scanf("%s %s %s",str,substr,replace);
    len=strlen(substr);
    for (p=str;*p!='\0';p++)
    {
        for (q=p,r=substr;*r!='\0';q++,r++)
            if (*q!=*r)
                break;
        if (*r=='\0')
            {start=p;
            break;}
    }
    for (p=start,q=replace;*q!='\0';p++,q++)
        *p=*q;
    printf("%s",str);
}
int main()
{
	char sub[257], s1[257], s2[257];
	int i, j, k, str1, str2;
	scanf("%s", sub);
	scanf("%s", s1);
	scanf("%s", s2);
	str1 = strlen(sub);
	str2 = strlen(s1);
	for (i=0;i<str1;i++)
		if (sub[i] == s1[0])
		{
			for (j=0;j<str2;j++)
				if (sub[i+j] != s1[j]) break;
			if (j==str2) 
			{
				for (j=0;j<str2;j++)
					sub[i+j] = s2[j];
				break;
			}
		}
	printf("%s\n", sub);
	return 0;
}
//2.cpp
//???????
//?????
//???12?27?


int main()
{
	char s[256], z[256], r[256];
	int i;
	cin.getline(s, 256);
	cin.getline(z, 256);
	cin.getline(r, 256);
	char *p = strstr(s, z);
	if (p == NULL)
		cout << s;
	else
	{
		char *q = s;
		for (i = 0; i < (p-q); i++)
			cout << s[i];
		cout << r;
		p = p + (strlen(z));
		while (*p != '\0')
		{
			cout << *p;
			p++;
		}
	}
	return 0;
}
int main(){
	char st[351],su[351],re[551],reh[551];
	int a,b,c,e,r,lu,lr;
	
	scanf("%s",st);
	scanf("%s",su);
	scanf("%s",re);
	r=-1;
	for(a=0;a<strlen(st);a++){
		e=1;
		for(b=0;b<strlen(su);b++){
			if(st[a+b]!=su[b]){
				e=0;
			}
		}
		if(e){
			r=a;
		
			break;
		}
	}
	if(r+1){
	for(a=0;a<r;a++){
		reh[a]=st[a];
	}
	for(a=0;a<strlen(su);a++){
		reh[r+a]=re[a];
	}
	lu=strlen(su);
	lr=strlen(re);
	for(a=r+lu;a<=530;a++){
		reh[lr+a-lu]=st[a];
	}
	
	
				printf("%s",reh);
			
	}
	else{
		printf("%s",st);
	}
	return 0;
}
main()
{  int i,j,k,sum,mm=0;
  char string1[NUM+10];
  char subString[NUM+10];
  char replacement[NUM+10];

for(k=0;k<NUM+10;k++)  //????? 
{
   string1[k]='0';
   subString[k]='0';
   replacement[k]='0';                  
                     }
  
  scanf("%s",string1) ;        //???? 
  scanf("%s",subString) ;
  scanf("%s",replacement) ;
  
  int len1=strlen(string1);      //????? 
  int len2=strlen(subString);
  int len3=strlen(replacement);
  
  
  for(i=0;i<len1-len2+1;i++)
  {          sum=0;                       
          if(string1[i]==subString[0])    //?????????? 
       {
            for(j=0;j<len2;j++)
            {if(subString[j]==string1[i+j])
            sum++;
            }
          
            if(sum==len2)               //??????? 
              {
              for(k=0;k<i;k++)                    //??1 
              printf("%c",string1[k]);
              for(k=0;k<len3;k++)                //??2 
              printf("%c",replacement[k]);
              for(k=i+len2;k<len1;k++)              //??3 
              printf("%c",string1[k]); 
              }  
    
                if(sum==len2)
                break;
                
       }
  }
    
    if (i==len1-len2+1) 
    for(k=0;k<len1;k++)
    printf("%c",string1[k]);

    
 getchar();
  getchar();
   getchar();
    getchar();
     getchar(); 
      getchar();
      
      
      }
main()
{
	int i,j,k,p;
	char a[300],b[300],c[300];
	scanf("%s",a);
	scanf("%s",b);
	scanf("%s",c);
	p=strlen(b);
	for(i=0;a[i]!='\0';i++)
		if(a[i]==b[0])
		{
			for(j=i,k=0;k<p;j++,k++)
			{
				if(a[j]!=b[k]) break;
			}
				if(k==p)
				{
					for(j=i,k=0;k<p;j++,k++)
						a[j]=c[k];
						printf("%s",a);break;
				}	
		}
		if(a[i]=='\0')
			printf("%s",a);
}
void main()
{
	  int start,end,ok,i,j,n,m,s;
	  char a[300],b[300],c[300];
      gets(a);
	  gets(b);
	  gets(c);
      n=strlen(a);
	  m=strlen(b);
	  s=strlen(c);
	  for (i=0;i<n;i++)
		  if (a[i]==b[0])
		  {
			  ok=1;
			  for (j=1;j<m;j++)
				  if (a[j+i]!=b[j])
					  ok=0;
			  if (ok)
			  {start=i;end=j+i;break;}
		  }
	  if (ok==1)
	  {
	  for (i=0;i<start;i++)
		  printf("%c",a[i]);
	  for (i=0;i<s;i++)
		  printf("%c",c[i]);
	  for (i=end;i<n;i++)
		  printf("%c",a[i]);
	  printf("\n");
	  }
	  else 
		  puts(a);

 
}
int main()
{
    char s[300],w[100],t[100];
	gets(w);
	gets(s);
	gets(t);
    int i,j,k,p,q,f=1,n,m,e;
    n=strlen(w);m=strlen(s);
    for(i=j=0;i<n;i++)
	{
        	k=i;p=i;q=j;
		if(w[p]==s[q])
		{
			for(q=0;q<m;q++){
				if(w[p]!=s[q]){
					f=0;
				}
				p++;
			}
			if(f==1)
			{
				for(e=0;e<k;e++)
				{
                    			printf("%c",w[e]);
				}
				printf("%s",t);
				for(e=k+m;e<n;e++){
					printf("%c",w[e]);
				}
				return 0;
			}
			f=1;
		}
	}
    printf("%s",w);
	return 0;
}
int main(){
       char s[100];
	   char a[100];
	   char b[100];
	   gets(s);
	   gets(a);
	   gets(b);

	   int ls=strlen(s);
	   int la=strlen(a);

	   int i,j;
	   int t;
	   int t2=0;
	   for(i=0;i<ls;i++){
		   t=1;
		   for(j=0;j<la;j++){
			   if(a[j]==s[i+j]){
					t=1;
					continue;
			   }

			   if(a[j]!=s[i+j]){
					t=0;
					break;
			   }	
		   }

		   if(t==1){
			t2+=1;
		   }
		   
		   if(t==1&&t2==1){
				printf("%s",b);
				i+=la-1;
			}
		   else{
				printf("%c",s[i]);
		   }
	   }
	  

	   


	   return 0;
}
//*********************
//* ??? ????   *
//* 1200012878 ??? *
//* 1?2?            *
//*********************
int main()
{
	char a[257], b[257], c[256];
	cin.getline(a, 257);
	cin.getline(b, 257);
	cin.getline(c, 257);
	int len1 = strlen(a), len2 = strlen(b), len3 = strlen(c);
	int i, j, count, flag = -1, m;
	for (i = 0; i <= len1 - 1; i++)
	{
		m = 0;
		if (a[i] == b[m])
		{
			count = 0;
			for (j = i; j <= i + len2 - 1; j++)
			{
				if (a[j] == b[m++])
					count++;
			}
			if (count == len2)
			{
				flag = i;
				break;
			}
		}
	}
	if (flag == -1)
		cout << a;
	else
		if (flag == 0)
		{
			cout << c;
			for (i = len2; i <= len1 - 1; i++)
				cout << a[i];
		}
		else
		{
			for (i = 0; i <= flag - 1; i++)
				cout << a[i];
			cout << c;
			for (i = i + len2; i <= len1 - 1; i++)
				cout << a[i];
		}
		return 0;
}
int bd(char *hed,char *zi,int m)
{
	int val=0,j;
	char *t1,*t2;
	for(t1=hed,t2=zi,j=0;j<m;t1++,t2++,j++)
	{if(*t1==*t2)val=1;
	else {val=0;break;}
}
	return(val);
}
void main()
{
	char *yuan,*zi,*rep,*med;
	yuan=(char *)malloc(260*sizeof(char));
	zi=(char *)malloc(260*sizeof(char));
	rep=(char *)malloc(260*sizeof(char));
	med=(char *)malloc(260*sizeof(char));

	gets(yuan);
	gets(zi);
	gets(rep);

	char *p;
	int n,m,zhi=0,t;
		
	for(p=yuan,n=0;*p!='\0';p++,n++);
	for(p=zi,m=0;*p!='\0';p++)m++;
	for(p=rep,t=0;*p!='\0';p++)t++;

	/*?????????*/

    /*????*/
	for(p=yuan;p<yuan+n-m+1;p++)
	if(bd(p,zi,m)==1){zhi=1;break;}
   
		if(zhi==1){strcpy(med,p+m);
                strcpy(p,rep);
				strcpy(p+t,med);}
	puts(yuan);

}
int main()
{ 
    char s[256], w[256],v[256]; 
    int i, j,slen,wlen,k;
    scanf("%s", w);
    scanf("%s", s);
    scanf("%s", v);
        slen = strlen(s);
    wlen = strlen(w);
       for(i=0;i<=wlen-slen;i++){
        for (j=0; j<slen; j++) {
             if (w[i+j] != s[j]) {
                break;
            }
		}
if (j == slen) {
	break;
}
        }
      if (j == slen) {
           for(k=0;k<i;k++){
            printf("%c",w[k]);
             }
           printf("%s",v);
         if(w[i+slen]!=0){
          for(k=i+slen;k<wlen;k++){     
        printf("%c",w[k]);
          }
           }
           
            }
     else if(i==wlen-slen+1)
     printf("%s",w);
     return 0;
}
char zfc1[100],zfc2[100],zfc3[100];
int main(){
	int len1,len2,i,j,k=1,g=0;
	gets(zfc1);
	gets(zfc2);
	gets(zfc3);
	len1=strlen(zfc1);
	len2=strlen(zfc2);
	for(i=0;i<len1;i++){
		if(zfc2[0]==zfc1[i]){
			for(j=1;j<len2;j++){
				if(zfc2[j]==zfc1[i+j])
					k++;
			}
		}
		if(k==len2){
			g++;
			break;
		}
		else
			k=1;
	}
	if(g==0)
		puts(zfc1);
	else{
		zfc1[i]=0;
		printf("%s%s%s",zfc1,zfc3,&zfc1[i+len2]);
	}
	return 0;
}
void main ()
{
	int sl,al,i,j,flag=0;
	char s[256],a[256],b[256];
	scanf("%s %s %s",s,a,b);
	sl=strlen(s);
	al=strlen(a);
	for(i=0;i<sl;i++)
	{
		if(s[i]==a[0])
		{
			for(j=0;j<al;j++)
			{
				if(s[i+j]==a[j]) flag=1;
				else flag=0;continue;
			}
			if(flag==1)
			{
				for(j=0;j<al&&s[i+j]==a[j];j++)
				s[i+j]=b[j];break;
			}
		}
	}
	printf("%s\n",s);
}
int main()
{
	char a[MAX+2],b[MAX+1],c[MAX+1];
	gets(a); gets(b); gets(c);
	int len,len1,len2,i,j,flag=1;
	len=strlen(a);
	len1=strlen(b);
	len2=strlen(c);
	for(i=0;i<len;i++){
		if(i<=len-len1&&flag==1){
		   if(a[i]==b[0]&&a[i+1]==b[1]&&a[i+len1-1]==b[len1-1]){
		     for(j=0;j<len2;j++)
		         printf("%c",c[j]);
		     i=i+len1-1;
			 flag=0;	
		   }
		   else
		   printf("%c",a[i]);
		}
		else
		printf("%c",a[i]);
	}
}
int main()
{

   


        char a[256];
    char b[256];
    char c[256];
    int i,n,m,d=0;
int e=0;
       
    gets(a);
    gets(b);
    gets(c);
    
    n=strlen(a);
    for(i=0;i<n;i++){
                  if (a[i]==b[0]){
                                if (a[i+1]==b[1]){
                                                   if (a[i+2]==b[2]){
                                                         d=i;
                                break;}}}
                                          
                     }
    

        m=strlen(c);
      if (d!=0) {
           
             for (i=d;i<d+m;i++){
                   
                a[i]=c[e];
                  e++;

                  }

           


}
      puts(a);

return 0;
}
int main()
{
	char a[256],b[256],c[256];
	scanf("%s",a);
	scanf("%s",b);
	scanf("%s",c);
	int lenth1,lenth2,i,j,t;
	lenth1=strlen(a);
	lenth2=strlen(b);
	for(i=0;i<=lenth1-1;i++)
	{
		t=i;
		for(j=0;j<=lenth2-1;)
		{
			
			if(a[t]==b[j])
			{
				t=t+1;
				j=j+1;
				
			}
			else
				break;

		}
		if(j==lenth2)
			break;
	}
	for(j=0;j<lenth2;j++,i++)
		a[i]=c[j];
	for(i=0;i<lenth1;i++)
	printf("%c",a[i]);
}
int main()
{

    char s[30000];char yc[30000];char tc[30000];int tag=1;int u=0;
gets(s);gets(yc);gets(tc);
for(int i=0;i<strlen(s);i++)
{
if(s[i]==yc[0]) {tag=2;     for(int j=0;j<strlen(yc);j++)
     {
     if(s[i+j]!=yc[j]){tag=0;break;}}

     }
     if(tag==2){printf("%s",tc);u=i+strlen(yc);break;}


if(tag!=2){printf("%c",s[i]);}

}
if(tag==2){for(int k=u;k<strlen(s);k++){printf("%c",s[k]);}}
    
	return 0;
}