semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main(int argc, char* argv[])
{
	int i,j,break1=0;
	char a[100],b[100],c[100];
    int right(char a[100],char b[100],int n);
	scanf("%s%s%s",a,b,c);
	for (i=0;i<100;i++)
	{
		if (a[i]==b[0])
		{
			if (right(a,b,i))
			{
				for (j=0;j<i;j++)
				{
					printf("%c",a[j]);
				}
				printf("%s",c);
				int len1=strlen(a);
				int len2=strlen(b);
				int len3=strlen(c);
				for (j=j+len2;j<len1-len2+len3;j++)
				printf("%c",a[j]);
				break;
				break1=1;
			}
		}
		if (break1==1) break;
		 if (i==strlen(a)) printf("%s",a);
	}

	return 0;
}
int right(char a[100],char b[100],int i)
{
	int len,j;
	len=strlen(b);
	for (j=0;j<len;j++)
		if (a[i+j]!=b[j])
			return 0;
	return 1;
}
int main()
{
	char a[100],b[100],c[100],d[100];
	int sum=0,i,j,k,n,m,h=0,y=0;
	gets(a);
        gets(b);
	gets(c);
	n=strlen(a);
	m=strlen(b);
	k=strlen(c);
	for(i=0;i<n;i++)
	{
		if(a[i]==b[0])
		{
                    for(j=0;j<m;j++)
		   {
		      if(b[j]==a[i+j])
		       sum++;
		    }                    //?????????????????????
		   if(sum==m&&y==0)
		   { 
	              for(j=0;j<k;j++)
                      d[h+j]=c[j];
		      i=i+m;
		      h=h+k;
		      y=1;
		    }
		   sum=0;
		}
    d[h]=a[i];
    h++;
	}
	d[h]='\0';
	printf("%s\n",d);
    return 0;  
}
int main()
{
	char str[300], sub[300], re[300];
	int lenstr, lensub;
	int i, j, k;
	
	scanf("%s", str);
	scanf("%s", sub);
	scanf("%s", re);
	lenstr=strlen(str);
	lensub=strlen(sub);

	for(i=0; i<lenstr; i++)
	{
		if(str[i]==sub[0])
		{
			for(j=i, k=0; k<lensub; j++, k++)
				if(str[j]!=sub[k])
					break;
			if(k==lensub)
			{
				for(j=i, k=0; k<lensub; j++, k++)
					str[j]=re[k];
break;
			}
		}
	}

	printf("%s", str);
	return 0;
}
void main()
{
	char a[500],word1[100],word2[100];
	scanf("%s%s%s",a,word1,word2);
	int la,l1,l2,i,j,k,flag;
	la=strlen(a);
	l1=strlen(word1);
	l2=strlen(word2);
	for(i=0;i<la;i++)
	{
		if(a[i]==word1[0])
		{
			for(j=0;j<l1;j++)
			{
				flag=1;
				if(a[i+j]!=word1[j]) 
					flag=0;
				else
					flag=1;
			}
		    if(flag==1)
			{
			    for(k=0;k<l2;k++)
				{
				    a[i+k]=word2[k];
				}
			}
			if(flag==1)
			{
				printf("%s\n",a);
				break;
			}
		}
		if(i==la-1)
		{
			printf("%s\n",a);
		}
	}
}
int main()
{
	char sz1[256];
	char sz2[256];
	char sz3[256];
	scanf("%s",sz1);
	scanf("%s",sz2);
	scanf("%s",sz3);
	int len1,len2;
	len1=strlen(sz1);
	len2=strlen(sz2);
	int i,k;
	int flag=0;
	for (k=0;k<=len1-len2;k++)
	{
		for (i=0;i<len2;i++)
		{
			if (sz1[i+k]==sz2[i])
			{
                   flag=flag+1;

			}
			
		}
		if (flag==len2)
		break;
		if (flag!=len2)
			flag=0;
	}
	if (flag==len2)
	{
		for (i=0;i<len2;i++)
		{
			sz1[k+i]=sz3[i];
		}
		
	}
	printf("%s",sz1);
	return 0;
}
int main()
{
	char s[256],a[256],b[256];
	int l1,i,j,n;
	int flag;
	scanf("%s",s);
	scanf("%s",a);
	scanf("%s",b);
	l1=strlen(a);
	for(i=0;s[i]!='\0';i++)
	{
		if(s[i]==a[0])
		{
			flag=1;
			for(j=i+1;j<(i+l1);j++)
			{
				if (s[j]!=a[j-i])
					flag=0;
				else 
				    flag=1;
			}
			if(flag==1)
			{
				for(n=0;n<i;n++)
					printf("%c",s[n]);
				printf("%s",b);
				for(n=i+l1;s[n]!='\0';n++)
					printf("%c",s[n]);
				return 0;
			}
		}
	}
	printf("%s",s);
	return 0;
}
char zfc[3][257];
int main(){
	gets(zfc[1]);
	gets(zfc[2]);
	gets(zfc[3]);
	int i,k,len,len2,j;
	len=strlen(zfc[1]);
	len2=strlen(zfc[2]);
	for(i=0;i<len;i++)
	{
		if((zfc[1][i]==zfc[2][0])&&(zfc[1][i+1]==zfc[2][1]))
			break;
	}
	if(i!=len)
	{
	  for(k=i;k<(len2+i);k++)
	  {
		  j=k-i;
		  zfc[1][k]=zfc[3][j];
	  	  if(k==len2+i)
			  break;
	  }
	}
	printf("%s",zfc[1]);
	return 0;
}
int main()
{
	 char a[1000],b[1000],c[1000];
	 int i,j,k,m,n,l,t;
	 gets (a);
	 gets (b);
	 gets (c);
	 m=strlen (a);
	 n=strlen (b);
	 l=strlen (c);
	 for (i=0;i<m;i++)
	 {
		 k=1;
		 if (a[i]==b[0])
		 {
			 k=0;
			 t=i;
		     for (j=1;j<n;j++)
			 {
			     if (a[i+j]!=b[j])
				 {
					 k=1;
				 }
			 }
		 }
		 if (k==0)
		 {
			 for (j=0;j<l;j++) printf ("%c",c[j]);
			 for (i=t+l;i<m;i++) printf ("%c",a[i]);
			 break;
		 }
		 if (k==1)
		 {
			 printf ("%c",a[i]);
		 }
	 }
	 return 0;
}
/*????2.cpp
  ???2012?12?25?
  ????? 1? 1200012895
  ???????
  */
int main()
{
	char a[260], b[260], c[260];                                    //a??????b????c?????
	char *p, *q, *k;  
	cin.getline(a, 260);
	cin.getline(b, 260);
	cin.getline(c, 260);
	int lena = strlen(a), lenb = strlen(b), flag = 0, t = 0, i;     //lena?a????lenb?b????flag??a????b?t??????
	p = a;
	q = a;
	k = b;
	while (*p != '\0')                                              //??p????'\0'??????
	{
		if (*q == *k)                                               //?????a?b?????
		{
			q++;                                                    //????????
			k++;
			if (*k == '\0')                                         //??b?????
			{
				flag = 1;                                           //?????????
				for (i = 0; i < t; i++)
					cout << a[i];
				cout << c;
				for (i = t + lenb; a[i] != '\0'; i++)
					cout << a[i];
				cout << endl;
				break;
			}
		}
		else                                                         //??p???????q??p????k????b
		{
			p++;
			q = p;
			k = b;
			t++;                                                     //??b????1
		}
	}
	if (flag == 0)                                                   //???????????????????
		cout << a << endl;
	return 0;
}
int main()
{
	int k,l,i,j,x=0;
	char s[256],a[256],b[256],p[256];
	gets(s);
	gets(a);
	gets(b);
	k=(int)strlen(s);
	l=(int)strlen(a);
	for(i=0;i<k-l+1;i++){
		for(j=0;j<l;j++){
			p[j]=s[j+i];
		}
		p[j]='\0';
		if(strcmp(p,a)==0){
			x=i;
			break;
		}
	}
	if(x==0){
		printf("%s",s);
	}
	else{
		for(i=0;i<x;i++){
			printf("%c",s[i]);
		}
		printf("%s",b);
		for(i=x+l;i<k;i++){
			printf("%c",s[i]);
		}
	}
	return 0;
}
int main()
{
	char a[256] = {0}, b[256] = {0}, c[256] = {0};
	cin >> a >> b >> c;
	char *p, *q;
	p = strstr(a, b);
	q = a;
	if(p == NULL)
		cout << a;
	else
	{
		while (q != p)
		{
			cout << *q;
			q++;
		}
		cout << c;
		q = q + strlen(c);
		while (*q != '\0')
		{	cout << *q;
			q++;
		}
	} 

	return 0;
}
//***??? 1200012772 *********
//***???????    *********
//***2012?12?29?    *********
int main()
{
	char str1[256],str2[256], str3[256];
	cin >> str1 >> str2 >> str3;
	int i = 0, j = 0, l1 = strlen(str1), l2 = strlen(str2);
	for (i = 0; i < l1; i++)
	{
		for (j = 0; j < l2; j++)
		{
			if (str1[i + j] != str2[j])
				break;
		}
		if (j == l2)
		{
			for (j = 0; j < l2; j++)
			{
				str1[i + j] = str3[j];
			}
			break;
		}
	}
	for (i = 0; i < l1; i++)
	{
		cout << str1[i];
	}
	cout << endl;
	return 0;
}
main()
{
      char str[257],sub[257],rep[257];
      int k,count=0,i,j=0;
      gets(str);
      gets(sub);
      gets(rep);
      k=strlen(sub);
      for(i=0;;)
      {
             
             if(count==k||str[j]=='\0')
                 break;
             else
             {
                 for(;str[j]!=0&&count!=k;j++)
                 {
                      if(str[j]==sub[i])
                      {
                           count++;
                           i++;
                      }
                      else
                      {
                          count=0;
                          i=0;
                      }
                 }
             }
      }
      if(count==k)
      {     
          
          for(int t=0;j-k+t<j;t++)
          {
                  str[j-k+t]=rep[t];
          }
      }
      printf("%s",str);
}
int main()
{
    char s[256],sub[256],re[256];
    int i,j,k;
    gets(s);
    gets(sub);
    gets(re);
    for(i=0;i<strlen(s);i++)
	{ 
	   for(j=i;j<strlen(sub)+i;j++)
	   {
		    if(s[j]!=sub[j-i]) break;
            if(j==strlen(sub)+i-1)
			{    
	             for(k=j;k>=i;k--)
	            	s[k]=re[k-i];
			}
	   }
	   if(j==strlen(sub)+i)break;
	}
    printf("%s",s);
    return 0;
}
int main()
{
	char a[256],b[256],c[256];
	scanf("%s %s %s",a,b,c);
	char *p;
	p=strstr(a,b);
	if(p)
	{   
		int n=strlen(a)-strlen(p);
		int i;
		int k=strlen(b);
	    int l=strlen(c);
        int m=0;
	    for(i=0;i<n;i++)
		{
		   printf("%c",a[i]);
		}
	    for(i=n;i<n+l;i++)
		{
			printf("%c",c[m]);
			m++;
		}
		for(i=n+k;i<(strlen(a));i++)
		{
			printf("%c",a[i]);
		}
	}
	else
	{printf("%s\n",a);}
	return 0;
}
int main(){

int i,n,m,k,p,q,z=0;
char a[260],b[260],c[260],d[260];

scanf("%s%s%s",a,b,c);
n=strlen(a);
m=strlen(b);
q=strlen(c);
for(i=0;i<n;i++){
	if(a[i]==b[0]){
		for(k=0;k<m;k++){
		d[k]=a[k+i];
		}
		d[k]='\0';
		if(strcmp(b,d)==0){
			for(p=0;p<i;p++){
			printf("%c" ,a[p]);
		
			}
				printf("%s" ,c);
			for(p=i+q;p<(n-m+q);p++){
			printf("%c",a[p]);
			}
             z=1;
			break;
		}
	}
}

if(z==0){
printf("%s" ,a);
}




return 0;
}
int main()
{
	char *org,*sub,*re;
	int i,j,flag;
	org=(char*)malloc(1024*sizeof(char));
	sub=(char*)malloc(100*sizeof(char));
    re=(char*)malloc(100*sizeof(char));
	gets(org);
	gets(sub);
	gets(re);
	for(i=0;*(org+i)!='\0';i++)
	{
		if(*(org+i)==*sub)
		{
			for(j=0;*(sub+j)!='\0';j++)
			{
				flag=0;
				if(*(org+i+j)!=*(sub+j))
				{flag=1;break;}
			}
			if(flag==0)
			{
				for(j=0;*(re+j)!='\0';j++)
					*(org+i+j)=*(re+j);
				break;
			}
			
		}
	}
	printf("%s",org);
}
main()
{
      int t=-1,u=-1,e=-1,c=0;
      char st[300]={'0'};
      char su[300]={'0'};
      char re[300]={'0'};
      int i,j,m=0,b=1;
      for(i=0;st[i-1]!='\n';i++)
      {
          scanf("%c",&st[i]);
      }
      for(i=0;su[i-1]!='\n';i++)
      {
          scanf("%c",&su[i]);
          u++;
      }
      for(i=0;re[i-1]!='\n';i++)
      {
          scanf("%c",&re[i]);
          e++;
      }
      for(i=0;st[i]!='\0';i++)
      {
          
          if(st[i]==su[0])
          {
              m=i;
              b=1;
              for(j=1;j<u;j++)
              {
                  if(su[j]!=st[m+j])
                  {
                      b=0;
                      break;
                  }
              }
              if(b==1)
              {
                   for(i=m;i<m+u;i++)
                   st[i]=re[i-m];
                   c=1;
              }
          if(c==1)
          break;
          }
      
      }
          printf("%s",st);

}
int main()
{
	char s[300],a[100],b[100];
	int i,j,n,m1,m2,x=-1,y=0;
	scanf("%s%s%s",s,a,b);
	n=strlen(s);
	m1=strlen(a);
	m2=strlen(b);
	for(i=0;i<=n-m1;i++)
	{
		if(s[i]==a[0])
		{
			y=1;
			for(j=1;j<m1;j++)
			{
				if(s[i+j]!=a[j])
				{
					y=0;
					break;
				}
			}
		}
		if(y==1)
		{
			x=i;
			break;
		}
	}
	if(x==-1)printf("%s\n",s);
	else 
	{
         for(i=0;i<x;i++)
			 printf("%c",s[i]);
		 printf("%s",b);
		 for(i=x+m1;i<n;i++)
			 printf("%c",s[i]);
		 printf("\n");
	}
}
int main()
{

	char src[256];
	char dst[256];
	char replacement[256];
	//freopen("3.in","r",stdin);
	//freopen("3.out","w",stdout);

	scanf("%s",src);//????
	scanf("%s",dst);//??
	scanf("%s",replacement);//??????
	char* p=strstr(src,dst);
	if( p== NULL )
	{
		printf("%s\n",src);
	}
	else
	{
		int len = strlen(replacement);
		int i;
		for (i=0;i<len;i++)
		{
			*p = replacement[i];
			p++;
		}//end for
		printf("%s\n",src);
	}//end if


	return 0;
}
int main(){
	char a[30000],b[100],c[100];
	gets(a);
	int lenth,y=1,j,i,m,num,tag=0;
	lenth=strlen(a);
	gets(b);
	m=strlen(b);
	gets(c);
	for(i=0;i<lenth;i+=y){
		y=1;
		num=0;
		if(tag==0){
		for(j=0;j<m;j++){
			if(a[i+j]==b[0+j]){
				num++;
			}
		}
		if(num==m){
			printf("%s",c);
			y=m;
			tag=1;
		}
		else{
			printf("%c",a[i]);
		}
		}
		else
		{
			printf("%c",a[i]);
		}
	}
	return 0;
}
int main(){
	char a[100],s[100],ex[100],b[100];
	int i,j,k,flag,len,D;
	gets(s);
	gets(a);
	gets(b);
	len=strlen(a);
	for(i=0;s[i]!='\0';i++)
	{
		flag=1;
		if (s[i]==a[0])
		{
			k=i;
			for (j=i;j<i+len;j++)
			{
				ex[j-i]=s[k];
				k++;
			}
	      	for (j=0;j<len;j++)
		    {
		        if (ex[j]!=a[j])
		       		flag=0;
	       	}
		}
        else
            flag=0;

	   	if (flag)
		{
			D=i;
			break;
		}
	}
	if (flag) 
	{
		for(i=0;i<D;i++)
		{
			printf("%c",s[i]);
		}
		for(i=0;b[i]!='\0';i++)
		{
			printf("%c",b[i]);
		}
		for(i=D+len;s[i]!='\0';i++)
		{
			printf("%c",s[i]);
		}
	}
	else
		for(i=0;s[i]!='\0';i++)
		{
			printf("%c",s[i]);
		}
	printf("\n");
	return 0;
}
char* strrpl( char* src, char* sub, char* rpl )
{
char* p = strstr( src, sub );
int a, b;
if ( p == NULL )
return src;
a = strlen( sub );
b = strlen( rpl );
memmove( p + b, p + a, strlen( p + a ) + 1 );
memcpy( p, rpl, b );
return src;
}
int main()
{
char str[256],sub[256],rpl[256];
gets( str );
gets( sub );
gets( rpl );
puts( strrpl( str, sub, rpl ) );
}
int main()
{
	char string[256],substring[256],replacement[256];
	int i,j,len1,len2,ex=0,a=0,shit=0;
	gets(string);
	gets(substring);
	gets(replacement);
	len1=strlen(string);
	len2=strlen(substring);
	for(i=0;i<len1;i++)
	{
		for(j=0;j<len2;j++)
		{
			if(string[i+j]==substring[j])
			{
				ex++;
			}
			if(ex==len2 && shit==0)
			{
				shit=1;
				for(j=a;j<i;j++)
				{
					printf("%c",string[j]);
				}
				printf("%s",replacement);
				a=i+len2;

			}
		}
		ex=0;
	}
	for(j=a;j<len1;j++)
	{
		printf("%c",string[j]);
	}
	return 0;
}
int main()
{
	char zf[100],zf1[100],zf2[100];
	int i,j,k;
	gets(zf);
	gets(zf1);
	gets(zf2);
	k=strlen(zf1);
	for(i=0;zf[i]!=0;i++)
	{
		
		for(j=0;zf1[j]!=0;j++)
		{
			if(zf1[j]!=zf[i+j])
				break;
		}
		if(j==(k))
		{
			for(j=0;zf2[j]!=0;j++)
			{
				zf[i+j]=zf2[j];
			}
			break;
		}

	}
	printf("%s",zf);
	return 0;
}
main()
{
      char a[100]={0},b[100]={0},c[100]={0};
      gets(a);
      gets(b);
      gets(c);
      int lb,la;
      lb=strlen(b);
      la=strlen(a);
      int count=0;
      
      for(int i=0;i<=la-lb;i++)
      {
              count=0;
              for (int j=0;j<lb;j++)
              {
                  if(a[i+j]!=b[j])
                  {
                  count=1;
                  break;
                  }
              }
              //if(i!=0 && a[i-1]!=' ' )
              //count=1;
              if(count==0 )
              {
                          a[i]=1;
                          for(int j=1;j<lb;j++)
                          a[i+j]=2;
break;
              }        
      }
      for(int i=0;i<la;i++)
      {
              if(a[i]==1) printf("%s",c);
              if(a[i]==2); 
              if(a[i]!=2 && a[i]!=1)
              printf("%c",a[i]);
      }
}
void main(){
	char s[256]={0},subS[256]={0},re[256]={0},t,s1[256]={0};
int i,j,l1,l2,l3,count,yes;
scanf("%s\0",s);
scanf("%s\0",subS);
scanf("%s\0",re);
l1=strlen(s);
l2=strlen(subS);
l3=strlen(re);
yes=0;
strcpy(s1,s);
for(i=0;i<=l1-l2;i++){
	count=0;
	for(j=0;j<l2;j++){
	   if(subS[j]!=s[i+j]) break;
	   if(subS[j]==s[i+j]) count++;
	}
	if(count==l2){
		yes=1;
		if(l2==l3){
		   for(j=0;j<l2;j++){
		     s[i+j]=re[j];
		   }
		   printf("%s",s);break;
		}
		if(l2>l3){
		   for(j=0;j<l3;j++){
		     s[i+j]=re[j];
		   }
		   for(j=0;j<l1-i-l2;j++){
		     // t=s[i+l2+j];
			  s[i+l3+j]=s[i+l2+j];
			  
		   }
		   for(j=0;j<l1+l3-l2;j++) printf("%c",s[j]);
		   break;
		}
		if(l2<l3){
		  /* for(j=0;j<l2;j++){
		     s[i+j]=re[j];
		   }
		   for(j=0;j<l1-i-l2;j++){
		     // t=s[i+l2+j];
			  s[l1-j]=s[l1+l3-l2-j];
			  
		   }
		   for(j=l2;j<l3;j++){
		      s[i+j]=re[j];
		   }*/
		   for(j=0;j<i;j++){
		      printf("%c",s[j]);
		   }
		   printf("%s",re);
		   for(j=i+l2;j<l1;j++){
		      printf("%c",s[j]);
		   }
		   break;
		}
	}
	
}
if(yes==0){
	//printf("HERE\n");
	//printf("%s\n",s1);
	for(j=0;j<l1;j++) {
		printf("%c",s1[j]);
		//printf("\0");
	}
	
}

}
int main (){
    int i,k,n,m=0,L,l1,l2;
    char s[256],a[100],b[100];
    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){
             for ( m=0; m<l2; m++){
                 s[i+m]=b[m];
             }
             break;
        }
    }    
    for ( k=0; k<i+m; k++){
        printf("%c",s[k]);
        getchar();
    }  
    for ( i =i+l1; i<L ;i++){
        printf("%c",s[i]);
        getchar();
    }
    return 0;
}
int main()
{
    char str[300];
    char sub[300];
    char rep[300];
    int i,j,lenstr,lensub,judge,state=0;
    fgets(str,300,stdin);
    fgets(sub,300,stdin);
    fgets(rep,300,stdin);
    lenstr=strlen(str)-1;
    lensub=strlen(sub)-1;
    for(i=0;i<=lenstr-lensub;i++)
    {
        judge=0;
        for(j=0;j<lensub;j++)
        {
            judge=judge+(str[i+j]-sub[j])*(str[i+j]-sub[j]);

        }
        if(judge==0)
            {state=1;
            break;}
    }
    if(state==1)
    {   for(j=0;j<=i-1;j++)
            printf("%c",str[j]);
        for(j=0;rep[j]!='\n';j++)
            printf("%c",rep[j]);
        for(j=i+lensub;j<=lenstr-1;j++)
            printf("%c",str[j]);
    }
    else
    {
        for(j=0;j<lenstr;j++)
            printf("%c",str[j]);
    }
    return 0;
}
int main()
{
	char	str[300];
	char	strstr[300];
	char	repla[300];
	int		i, j, k;
	cin.getline(str, 300);
	cin.getline(strstr, 300);
	cin.getline(repla, 300);

	int		sl1 = strlen(str);
	int		sl2 = strlen(strstr);
	int		sl3 = strlen(repla);

	for (i = 0; i < sl1; i ++)
	{
		int	flag = 1;
		if(str[i] != strstr[0])
		{continue;}
		else
		{
			for (j = i; j < i + sl2; j ++)
			{
				if(str[j] != strstr[j - i])
				{
					flag = 0;
					break;
				}
			}
			if(flag == 0)
			{continue;}
			//found
			else
			{
				int vec = sl3 - sl2;
				//to move;
				for (k = sl1; k >= i + sl2; k --)
				{
					str[k + vec] = str[k];
				}
				//replace
				for (k = i; k < i + sl3; k ++)
				{
					str[k] = repla[k - i];
				}
				break;
			}
		}
	}
	cout << str << endl;
return 0;
}
int main()
{
   char str[257],substr[257],rep[257];
   int i,j=0,m,n,g=0;
   scanf("%s",str);
   scanf("%s",substr);
   scanf("%s",rep);
   m=strlen(str);
   n=strlen(substr);
   for(i=0;i<m;i++)
	   if(str[i]==substr[j]&&g<n)
	   {
		   j++;
           g++;
	   }
	   else if(g>=n)
		   break;
	   else {g=0;j=0;}
   if(g==n)
	   for(j=0,i=i-n;j<n;j++,i++)
	   {
		   str[i]=rep[j];
	   }
   printf("%s",str);
   return 0;
}
int main ()
{
	char str[256], sub[256], rep[256];
	cin.getline(str, 256);
	cin.getline(sub, 256);
	cin.getline(rep, 256);
	int i, j, len1, len2;
	len1 = strlen(str);
	len2 = strlen(sub);
	for (i = 0; i <= len1 - len2; i++ )
	{
		j = 0;
		while (str[i + j] == sub[j] && j < len2)
			j++ ;
		if (j == len2)
		{
			while (j > 0)
			{
				j-- ;
				str[i + j] = rep[j];
			}
			break;
		}
	}
	cout << str << endl;

	return 0;
}
int main()
{
    int l,m,n,i,j,s,k;
    char string[256],substring[256],replacement[256];
    char t;
    scanf ("%s",string);
    scanf ("%s",substring);
    scanf ("%s",replacement);
    l=strlen(string);
    m=strlen(substring);
    t=substring[0];
    for (i=0;i<=l-m;i++)
    {
       s=0;
       if (string[i]==t)
       {
          for (j=i;j<=i+m-1;j++)
          {
          if (string[j]==substring[j-i])    {s++;}
          }
       if (s==m)
       {
           for (k=0;k<=m-1;k++)
           {string[i+k]=replacement[k];}
           i=l-m;
       }
       else
           {i++;}
       }
     }
    printf("%s\n",string);
return 0;
}
int main()
{
	char a[100];
	char b[100];
	char c[100];
	int i,j,m,k;
    int n=0;
	scanf("%s",a);
	scanf("%s",b);
	scanf("%s",c);
    m=strlen(b);
	for(i=0;a[i]!='\0';i++){
		if(a[i]==b[0]){
			n=0;
			for(j=0;b[j]!='\0';j++){
				if(a[i+j]==b[j])n++;
			}
			if(m==n)break;
		}
	}
if(m==n){
	for(k=0;k<i;k++){
		printf("%c",a[k]);
	}
    printf("%s",c);
	for(k=i+m;a[k]!='\0';k++){
		printf("%c",a[k]);
	}
}
	
	
	if(n!=m)
		printf("%s",a);
	return 0;
}
int main()
{
	char a[300];
	char b[200],c[200],d[200]={0};
	int n1,n2,n3,i,j,k,result,p,w;
	scanf("%s%s%s", a,b,c);
	n1=strlen(a);
	n2=strlen(b);
	n3=strlen(c);
	p=0;
	k=10000;
	for(i=0;i<n1-n2+1;i++)
	{
		if(p==0)
		{
			for(j=0;j<n2;j++)
			{
				d[j]=a[i+j];
			}
			result=strcmp(d,b);
			if(result==0)
			{
				k=i;
				p=1;
				w=i+j;
			}
		}
	}
	if(k==10000)
		printf("%s",a);
	else 
	{
		for(i=0;i<k;i++)
			printf("%c", a[i]);
		printf("%s",c);
		for(i=w;i<n1;i++)
			printf("%c", a[i]);
	}
	return 0;
}
main()
{
 char *s=(char*)malloc(256),*s1=(char*)malloc(256),*s2=(char*)malloc(256);
 int i,j,k,m=0;
 gets(s);
 gets(s1);
 gets(s2);
 for(i=0;*(s+i)!='\0';i++)
 {
  for(j=i,k=0;(*(s+j)!='\0')&&(*(s1+k)!='\0')&&(*(s+j)==*(s1+k));j++,k++);
  if(k==strlen(s1))
  {
   for(j=i,k=j+strlen(s1);k<strlen(s);k++,j++)
    *(s+j)=*(s+k);
   *(s+j+strlen(s2))='\0';
   for(j=--j+strlen(s2),k=j-strlen(s2);k>=i;j--,k--)
    *(s+j)=*(s+k);
   for(j=i,k=0;*(s2+k)!='\0';j++,k++)
    *(s+j)=*(s2+k);
    m=m+1;
  }
  if(m!=0)
  break;
 }
 puts(s);
}
int main(){
    char str[257],sub[257],rep[257];
    int result=0;
    int a,b,c,i,d,e=0,f,g,h,j,k;
    int len[256];
    gets(str);
    gets(sub);
    gets(rep);
    a=strlen(str);
    b=strlen(sub);
    c=strlen(rep);
    for(i=0;i<a;i++){
      for(d=0;d<b-1;d++){
        if((str[i+d]==sub[d])&&(str[i+d+1]==sub[d+1])){
          result=1;
          len[e]=i;
          e++;                                      
        }
        break;
      }               
    }
    f=len[0];
    if(result==1){
    for(g=0;g<f;g++){
     printf("%c",str[g]);                  
    }
    for(h=0;h<c;h++){
     printf("%c",rep[h]);                 
    }
    for(j=0;j<a-f-b;j++){
     printf("%c",str[f+b+j]);                     
    }                 
    }
    else if(result==0){
     puts(str);
    }
    return 0;
}
int main(int argc, char* argv[])
{
	char a[256],b[256],c[256];
	int la,i,j,lb,lc,h=300,p;
	scanf ("%s %s %s",a,b,c);
    la=strlen (a);
	lb=strlen (b);
	lc=strlen (c);
    for (j=0;j<la;j++)
	{   
		if (b[0]==a[j]) 
		{   
			for (i=0;i<lb;i++) 
			{	if (b[i]!=a[j+i]) 
					break;
            if ((i==lb-1) && (b[i]==a[j+i]))
			{	
				h=j;
			    j=100;
				break;
			}
			}
		}
	}
    if(h!=300)
	{
    	for (p=h;p<h+lb;p++)
		{
		     a[p]=c[0+p-h];
		}
	}
	for (i=0;i<la;i++)
	{
	     printf ("%c",a[i]);
	}
    

	return 0;
}
int main()
{
	char s[300],w[300],r[300],d[300];
	int i,j,l,h;
	scanf("%s%s%s",s,w,r);
	l=strlen(s);
	h=strlen(w);
	for(i=0;i<=l-h;i++)
	{
		for(j=0;j<h;j++)
		{
			d[j]=s[i+j];
		}
		d[h]='\0';
		if(strcmp(d,w)==0) break;
	}
	if(i==l-h+1) printf("%s",s);
	else
	{
		for(j=i;j<i+h;j++)
		{
			s[j]=r[j-i];
		}
		printf("%s",s);
	}
	return 0;
}
main ()
{
  char a[3000];
  gets (a);
  char b[3000];
  gets (b);
  char c[3000];
  gets (c);
  int i,j,k,s,l=0;
  int count =0;
    for (k=0;b[k]!='\0';k++)
     l=l+1;
   for (i=0;a[i]!='\0';i++)
    {
      if (a[i]==b[0])
        {
           
           for (j=i,s=0;j<i+l,s<l;j++,s++)
             {
               if (a[j]==b[s])
                count++;
               
             
           if (count ==l)
                 {
                  for (j=i,s=0;j<=i+l-1&&s<=l-1;j++,s++)
                       a[j]=c[s];
                  
                 }
             }
        
        }
        
        
        
        
      }
     for (i=0;a[i]!='\0';i++)
      printf ("%c",a[i]);


 getchar();
 

}
int main()
{
	char str1[257],str2[257],str3[257];
	scanf("%s",str1);
	scanf("%s",str2);
	scanf("%s",str3);
	int a,i,j,b,k=0,c;
	c=strlen(str3);
	a=strlen(str1);
	b=strlen(str2);
	for (i=0;i<a;i++)
	{
		if (str1[i]==str2[0])
		{
			for (j=1;j<b;j++)
			{
				if (str1[i+j]==str2[j])
					k++;
				else 
				{
					k=0;
					break;
				}
			}
			if (k==b-1)
			{
				for (j=i;j<i+c;j++)
				{
					str1[j]=str3[j-i];
				}
				break;
			}
		}
	}
	printf("%s",str1);
	return 0;
}