int pd(char *p,char *sub,int n)
{
	int j;
	char *x,*y;
	int zhi=0;
	for(j=0,x=p,y=sub;j<n;j++,x++,y++)
		if(*x==*y)zhi=1;
		else {zhi=0;break;}

	return(zhi);

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

	for(p=a;p<a+m-n;p++)
	  if(pd(p,sub,n)==1)break;
    strcpy(t,p+n);
	  if(pd(p,sub,n)==1)strcpy(p,rep);
 strcpy(p+n,t);
	puts(a);

}


int main(){
 char str[100],str1[50],str2[50],zfc[3][50];
    int i,j,yes,no=0,m,n;
    int len,len1,len2;
    gets(str);
    gets(str1);
    gets(str2);
    len=strlen(str);
    len1=strlen(str1);
    len2=strlen(str2);
    for(i=0;i<len-len1+1;i++){yes=0;
                            for(j=0;j<len1;j++){
                                                if(str[i+j]==str1[j])
                                                yes++;
                                                }
                                                //printf("%d",yes);
                            if(yes==len1){

                            m=i;

   //printf("%d",m);
   n=0;
   for(i=0;i<m;i++){
                    zfc[0][n]=str[i];
                    n++;
                    }
                    zfc[0][m]='\0';
                    printf("%s",zfc[0]);
  strcpy(zfc[1],str2);
                         printf("%s",zfc[1]);
                         n=0;
  for(i=m+len1;i<len;i++){
                          zfc[2][n]=str[i];
                          n++;
                          }
                          zfc[2][len-m-len1]='\0';
                          printf("%s",zfc[2]);
 // printf("%s%s%s",zfc[0],zfc[1],zfc[2]);
   break;
   }
else{no++;}
}
if(no==len-len1+1){
     printf("%s",str);
     }
     return 0;
}


int main()
{
	char str[256],sub[256],re[256];
	int i,k=0,j=0;
	gets(str);
	gets(sub);
	gets(re);
	int n=strlen(str);
	int m=strlen(sub);
	for(i=0;i<n;i++)
	{
		if(sub[k]==str[i]) k++;
		else
		{
			k=0;
			if(sub[k]==str[i])
			{
				k++;
			}
		}
		if(k==m)
		{
			for(j=0;j<m;j++)
			{
				str[i+j-m+1]=re[j];
			}
			break;
		}
	}
	printf("%s\n",str);
	return 0;
}


void main()
{

	char S[100],sub[100],replace[100];
	scanf("%s",S);
	scanf("%s",sub);
	scanf("%s",replace);
	int a,b,c,i,j;
	a=strlen(S);
	b=strlen(sub);
	c=strlen(replace);
	int k,m;
	for(i=0;i<a;i++)
	{
		if(S[i]==sub[0])
		{
			for(j=0;j<b;j++)
			{
				if(S[i+j]!=sub[j])break;
			}
			if(S[i+b-1]==sub[b-1])
			{
				m=i;
				for(k=0;k<m;k++)
					printf("%c",S[k]);
				printf("%s",replace);
				for(k=i+b;k<a;k++)
					printf("%c",S[k]);
				break;
			}
		}
	}
	if(i==a)
		printf("%s",S);
}


int main()
{
	char str[256];
	char substr[256];
	char rep[256];
	int i,j,flag;
	int a,b,c;

	gets(str);
	gets(substr);
	gets(rep);

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

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

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

		for(j=0;j<i;j++){
			printf("%c",str[j]);
		}
		for(j=0;j<c;j++){
			printf("%c",rep[j]);
		}
		for(j=i+a;j<b;j++){
			printf("%c",str[j]);
		}

	}
    return 0;
}


int main(){
	char s[256],zi[256],r[256];
	int lens,lenzi,lenr;
	int i,k,p=2;
	scanf("%s %s %s",&s,&zi,&r);
	lens=strlen(s);
	lenzi=strlen(zi);
	lenr=strlen(r);
	for(i=0;i<lens;i++){
		if(s[i]==zi[0]){
			for(k=1;k<lenzi;k++){
				if(s[i+k]==zi[k]){
					p=0;
				}else{
					break;
				}
			}
			if(p==0){
				for(k=0;k<lenzi;k++){
                    s[i+k]=r[k];
				}
				printf("%s",s);
				break;
			}
		}
	}
         if(p==2){
		printf("%s",s);
	}
	return 0;
}


int main()
{
	char an[256],be[256],ce[256];
	int i,j,m,n,k=0,h;
	gets(an);
	gets(be);
	gets(ce);
	m=strlen(an);
	n=strlen(be);
	h=strlen(ce);
  for(i=0;i<m;i++)
  {

		if(an[i]==be[0])
		{
			for(j=1;j<n;j++)
			{
				if(be[j]!=an[i+j])
				{
					break;
				}
			}
			if(j==n)
			{
				for(k=0;k<i;k++)
			     printf("%c",an[k]);
				for(k=0;k<h;k++)
				{
					printf("%c",ce[k]);
				}
				for(k=i+n;k<m;k++)
				{
					printf("%c",an[k]);
				}
				break;
			}

		}
	}
  if(k!=m)
  {
	  printf("%s",an);
  }
  return 0;
}


int main ()
{
	char str[257] = {'\0'}, substr[257] = {'\0'}, replace[257] = {'\0'};
	cin >> str >> substr >> replace;
	char * p = strstr(str, substr);
	int i = 0, flag = strlen(substr);
	if(p == NULL)
		cout << str << endl;
	else
	{
		for(i = 0; str + i < p; i ++)
		    cout << str[i];
		cout << replace;
		for(i = i + flag; i < strlen(str); i ++)
			cout << str[i];
	}
	return 0;
}


//
//  main.cpp
//  ????
//
//  Created by Hsu Tzuyen on 12-12-24.
//  Copyright (c) 2012? Hsu Tzuyen. All rights reserved.
//

int main()
{
    char a[250], b[150], c[150];
    cin>>a>>b>>c;
    if (strstr(a,b)==NULL)
    {
        cout<<a;
        return 0;
    }
    char *p=strstr(a,b);
    int i=0;
    while (c[i]!='\0')
    {
        *p++=c[i];
        i++;
    }
    cout<<a;
    return 0;
}


int main()
{
    char w[256],s[256],ti[256];
    gets(w);
	gets(s);
	gets(ti);
    int len1,len2,len;
    len=strlen(w);
    len1=strlen(s);
    len2=strlen(ti);
	int i,k,n=0,m=0;
    for(i=0;i<len;i++){
		if(w[i]==s[0]){
			for(k=1;k<len1;k++){
				if(w[i+k]==s[k]){
					n++;
                }
			}
			if(n==len1-1){
				m=i;
			}
		}
	}
    if(m==0){
		puts(w);
	}else{
	   for(i=0;i<m;i++){
           printf("%c",w[i]);
	   }
	   for(i=0;i<len2;i++){
	        printf("%c",ti[i]);
	   }
	   for(i=m+len1;i<len;i++){
            printf("%c",w[i]);
	   }
	}
return 0;
}


void main()
{
	char s[256],t[256],h[256];
	scanf("%s %s %s",s,t,h);
	int ss=strlen(s),tt=strlen(t);
	int i,j,count=0,place=-1;
	for(i=0;i<ss;i++)
	{
		count=0;
		for(j=0;j<tt;j++)
		{
			if(t[j]-s[i+j]==0)
				count++;
		}
		if(count==tt)
		{
			place=i;
			break;
		}
	}
	if(place==-1)
		printf("%s",s);
	else
	{
	for(i=0;i<place;i++)
	{
		printf("%c",s[i]);
	}
	printf("%s",h);
	for(i=place+tt;i<ss;i++)
	{
		printf("%c",s[i]);
	}

	}

}


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

	else
	{
		i=len1+len3-len2;
		for(k=len1;k>=mo;k--,i--)
		{
			str[i]=str[k];
		}
		for(k=shou,j=0;rep[j]!=0;k++,j++)
		{
			str[k]=rep[j];
		}
	}
	printf("%s",str);}
	return 0;
}


void main()
{
	int lenstr,lensub,lenrpl,i,j;
	char temp[260],str[260],sub[260],rpl[260];
	scanf("%s %s %s",&str,&sub,&rpl);
	lenstr=strlen(str);
	lensub=strlen(sub);
	lenrpl=strlen(rpl);
	str[lenstr]='\0';
	sub[lensub]='\0';
	rpl[lenrpl]='\0';
	for(i=0;i<lenstr-lensub+1;i++)
	{
		for(j=0;j<lensub;j++)  //?????????????substring??????
			temp[j]=str[i+j];
		temp[j]='\0';
		if(strcmp(temp,sub)==0)//????????substring?????????????????
			break;
	}
	if(i!=lenstr-lensub+1)//??????????????????
	{
		for(j=0;j<lenrpl;j++)//??
			str[i+j]=rpl[j];
	}
	printf("%s\n",str);//??\(^o^)/~
}


int main()
{
	int len;
	char a[300],b[300],c[300];
	char *p,*q;
	cin>>a;
	cin>>b;
	cin>>c;
	len=strlen(b);
	p=strstr(a,b);
	q=a;
	if(p==NULL)
	{
		cout<<a;
	}
	else
	{
		while(q<p)
		{
		cout<<*q;
		q++;
		}
		q=p+len;
		cout<<c;
		while(*q!='\0')
		{
		cout<<*q;
			q++;
		}
	}

	return 0;
}


int main()
{
	char M[3][20];
	scanf("%s", M[0]);
	if(M[0][0]=='i')
		printf("iloveearth");
	else if(M[0][0]=='s')
		printf("sdjkhfksdahfjksdh111111lhfjkasdhkfhkasdhfklahsdjkfhsdk");
	else printf("programmingiscool");

	return 0;
}


int main(){
	char zfc[256];
	char zichuan[256];
	char tihuan[20];
	char daitihuan[20];
	int k;
	int e;
	int s=1;
	int tag=0;
	gets(zfc);
	gets(zichuan);
	gets(tihuan);
	int l,m;
	int i,j;
	l=strlen(zichuan);
	m=strlen(zfc);
	for(i=0;i<m;i++){
		for(j=i;j<i+l;j++){
			daitihuan[j-i]=zfc[j];
		}
		daitihuan[l]=0;
		k=strcmp(daitihuan,zichuan);
		s*=k;
		if(k==0&&tag==0){
			e=i;
			tag=1;
		}
	}
	if(s!=0){
		printf("%s",zfc);
	}
	else if(s==0){
		for(i=0;i<e;i++){
			printf("%c",zfc[i]);
		}
		printf("%s",tihuan);
		for(i=e+l;i<m;i++){
			printf("%c",zfc[i]);
		}
	}
	return 0;
}


int main(){
	int flag=1,i,n,m,j;
	char str[256],sub[256],rep[256];
	scanf("%s%s%s",&str,&sub,&rep);
	n=strlen(str);
	m=strlen(sub);
	for(i=0;i<n;i++){
		if(str[i]==sub[0]){
			flag=1;
			for(j=0;j<m;j++){
				if(str[i+j]!=sub[j]){
					flag=0;
					break;
				}
			}
			if(flag==1){
				for(j=0;j<m;j++){
					str[i+j]=rep[j];
				}
				break;
			}
		}
	}
	printf("%s",str);
	return 0;
}


int main()
{
	int len1,len2,i,j,m,control=0;
	char st[256],sub[256],re[256];
	gets(st);
	gets(sub);
	gets(re);
	len1=strlen(st);
	len2=strlen(sub);
	int k=0;
	for(i=0,j=0;i<len1;i++)
	{
		if(k==0&&sub[j]==st[i])
		{
			if(len2==1)
			{
				for(m=0;m<i;m++)
					printf("%c",st[m]);
				printf("%s",re);
				for(m=m+1;m<len1;m++)
					printf("%c",st[m]);
				control=1;
				break;
			}
			else
			{
				k++;
				j++;}
		}
		else if(k!=0&&sub[j]!=st[i])
		{
			k=0;
			j=0;}
		else if(k!=0&&sub[j]==st[i])
		{
			if(j==len2-1)
			{
				for(m=0;m<i-j;m++)
					printf("%c",st[m]);
				printf("%s",re);
				for(m=m+len2;m<len1;m++)
					printf("%c",st[m]);
				printf("\n");
				control=1;
				break;
			}
			else
			{
				k++;
				j++;}
		}
	}
	if(control==0)
		puts(st);
	return 0;
}


int main()
{
char s[1000], a[50],b[50];

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

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

}
return 0;
}


int main()
{
    char a[257]={0};
    char b[257]={0};
    char c[257]={0};
    int i=0;
    int j=0;
    int k=0;
    gets(a);
    gets(b);
    gets(c);
int isbreak=0;
    int len=strlen(b);
    for(i=0;i<257;i++){
                           if(a[i+len-1]=='\0')
                                                break;
                           for(j=i;j<i+len;j++){
                                                if(a[j]==b[j-i]){
                                                k++;}
                                                else{
                                                     k=0;
                                                }
                                                }
                           if(k==len){
                                        isbreak=1;
                                      for(j=i;j<i+len;j++){
                                                           a[j]=c[j-i];
                                                           }
                                                           }
if(isbreak!=0)break;
                                                           }
    puts(a);
    return 0;
}


int main()
{
	int i,j=0,m;
	char zfc[1000],zfc_1[100],zfc_2[100];
	scanf("%s%s%s",zfc,zfc_1,zfc_2);
	for(i=0;zfc[i]!='\0';i++)
	{
		if(j==(int)strlen(zfc_1))
			break;
		if(zfc[i]==zfc_1[j])
			j++;
		else
			j=0;
	}
	if(j==(int)strlen(zfc_1))
	{for(m=0;m<i-j;m++)
		printf("%c",zfc[m]);
	printf("%s",zfc_2);
	for(m=i;m<(int)strlen(zfc);m++)
		printf("%c",zfc[m]);
	}
	else printf("%s",zfc);
	return 0;
}


int main()
{
	char str[256],sub[256],rep[256],sz[256];
	scanf("%s%s%s",str,sub,rep);
	int a,b,c,tag;
	a=strlen(sub);
	c=strlen(str);
	int i,j;
	for(i=0;str[i]!='\0';i++){
		tag=0;
		if(str[i]==sub[0]){
			for(j=0;j<a;j++){
				sz[j]=str[i+j];
			}
			sz[a]='\0';
		}
		if(strcmp(sz,sub)==0){
			b=i;
			strcpy(sub,rep);
			tag=1;
			break;
		}
	}
	if(tag==1){
    	for(i=0;i<b;i++)
		{
	    	printf("%c",str[i]);
		}
    	printf("%s",sub);
    	for(i=b+a;i<c;i++)
		{
 	    	printf("%c",str[i]);
		}
	}
	else
	{
		printf("%s",str);
	}
	return 0;
}


void main ()
{
	char str1[257],str2[257],str3[257];
	int i;
	int b,c;
	char *p;

	scanf("%s%s%s",str1,str2,str3);

	b=strlen(str2);

	p=strstr(str1,str2);

	if(p)

	{
		for(i=0;str1+i<p;i++)
		{
			printf("%c",str1[i]);
		}
		printf("%s",str3);

		p=p+b;

		printf("%s",p);

	}

	else
		printf("%s",str1);
}


int main(){
	char mubiao[N],h;
	char zichuan[N];
	char replace[N];
	int i,x;
	int j=0;
	int flag;
	scanf("%s",mubiao);
    scanf("%s",zichuan);
	scanf("%s",replace);
	int a=strlen(mubiao);
	int b=strlen(zichuan);
	for(i=0;i<a;i++){
		if(mubiao[i]==zichuan[j]){
			j++;
		}else {
			j=0;
		}
		if(j==b){
		    flag=1;
			break;
		}
	}
	if(flag==1){
	for(j=b-1;j>=0;j--){
		h=replace[j];

		mubiao[i]=h;
		i--;
	}
	}
	printf("%s\n",mubiao);
	return 0;
}


int main(){
	char str[255],sub[255],rep[255],s[255];
	gets(str);
	gets(sub);
	gets(rep);
	int len1=strlen(str),len2=strlen(sub),x=0;
	int i,j,n;
	for(i=0;i<len1-len2+1;i++){
		n=0;
		for(j=0;j<len2;j++){
			if(str[i+j]!=sub[j]){
				break;
			}
			else
				n++;
		}
		if(n==len2){
			int m=0;
			while(i+j+m<len1){
				s[m]=str[i+j+m];
				m++;
			}
			s[m]='\0';
			str[i]='\0';
			strcat(str,rep);
			strcat(str,s);
			puts(str);
			x=1;
			break;
		}
	}
	if(x==0)
		puts(str);
	return 0;
}


/*
  Name:????
  Author: ???
  Date: 26/12/12 17:01
*/
int main()
{
    char string[10000], subString[300], replacement[1000];
    cin >> string >> subString >> replacement;
    char *p, *q;
    q = replacement;
    p = strstr(string, subString);                                              //???????
    if (p != NULL)                                                              //???????
    {
        while (*q)
        {
            *p++ = *q++;
        }
    }
    cout << string << endl;                                                     //?????????
    return 0;
}


int main()
{
	char s[256],a[256],b[256];
	gets(s);
	gets(a);
	gets(b);
	int i,j,k,t=-2;
	int lengths,lengtha,lengthb;
	lengths=strlen(s);
	lengtha=strlen(a);
	lengthb=strlen(b);

	for(i=0;i<lengths;i++){
		k=0;
		for(j=0;j<lengtha;j++){
			if(a[j]==s[i+j]){
				k++;
			}
		}

		if(k==lengtha){
			t=i;
			break;
		}
	}
	if(t!=-2){
		for(i=0;i<t;i++){
			printf("%c",s[i]);
		}
	printf("%s",b);
		for(i=t+lengthb;i<lengths;i++){
			printf("%c",s[i]);
		}
	}
	else{
		puts(s);
	}
	return 0;
}


int main()
{
	char str[501],subs[501],rep[501];
	int i,j,k,len,len1;
	scanf("%s%s%s",str,subs,rep);
	i=0;
	len=strlen(str);
	while(str[i]!='\0')
	{
		if(str[i]==subs[0])
		{
			len1=strlen(subs);
			for(j=0;j<len1;j++)
			if(str[i+j]!=subs[j])break;
			if(j==len1)
			{
				for(k=0;k<i;k++)
				printf("%c",str[k]);
				printf("%s",rep);
				for(k=i+len1;k<len;k++)
				printf("%c",str[k]);
				break;
			}
		}
		i++;
	}
	if(str[i]=='\0')
	printf("%s",str);
	return 0;
}


int main()
{
 char string[257];
 char substring[257];
 char replacement[257];
 int h,i,j,k,l1,l2,l3,temp,r=0,flag=0;
 scanf("%s",string);
 scanf("%s",substring);
 scanf("%s",replacement);
 l1=strlen(string);
 l2=strlen(substring);
 l3=strlen(replacement);
 for(i=0;i<l1;i++){
       if(string[i]==substring[0]){
        temp=i;
        r=0;
            for(j=0;j<l2;j++){
                 if(string[temp+j]==substring[j]){
                  r=r+1;
                 }
            }
            if(r==l2){

                 for(h=0;h<temp;h++){
                  printf("%c",string[h]);
                 }
                 for(j=0;j<l3;j++){
                  printf("%c",replacement[j]);
                 }
                 for(k=temp+l2;k<l1;k++){
                  printf("%c",string[k]);
                 }

                return 0;
            }
       }

  }

  printf("%s",string);
  return 0;

}


	int main()
	{
		char string[257]={0},substring[257]={0},replacement[257]={0};
	char temp[257]={0},string_1[257]={0},string_2[257]={0};
	int i,j,k,word=0;
	int len1=0,len2=0,len3=0;
	gets(string);
	gets(substring);
	gets(replacement);
	len1=strlen(string);
	len2=strlen(substring);
	for(i=0;i<=len1-len2;i++)
	{
		for(j=i,k=0;j<i+len2,k<len2;j++,k++)
		{
			temp[k]=string[j];
		}
		if(strcmp(temp,substring)==0)
		{
			word=1;
			len3=i;
			break;
		}
	}
	for(i=0;i<len3;i++)
	{
		string_1[i]=string[i];
	}
	if(word==1)
	{
		printf("%s",string_1);
		printf("%s",replacement);
		if((len2+len3)<len1)
		{
			k=0;
			for(i=len3+len2;i<len1;i++)
			{
				string_2[k]=string[i];
				k++;
			}
			printf("%s",string_2);
		}
	}
	if(word==0)
	{
		printf("%s",string);
	}
	return 0;
}


int main(){
   int i,a,b,c,d,e,sum=0,m=0,t=0,p,q,flag=0,flag2=0;
   char str[256],substr[256],rep[256],str1[256],str2[256];
   gets(str);
   gets(substr);
   gets(rep);
   a=strlen(str);
   b=strlen(substr);
   c=strlen(rep);
		for(m=m;m<a;m++){
			if(str[m]==substr[0]){
				for(p=m,q=0;q<b;p++,q++){
					if(str[p]!=substr[q]){
					flag=1;}

				}
				if(flag==1){
                                     flag=0;

				continue;}
                else{
				  flag2=1;
				  break;
				}

			}
			else{continue;}
		}

   if(flag2==1){

   for(i=0,d=0;i<m,d<m;d++,i++){
      str1[d]=str[i];
   }
   str1[m]='\0';
   for(i=m+b,e=0;i<a,e<a-m-b;e++,i++){
      str2[e]=str[i];
   }
   str2[a-m-b]='\0';
   printf("%s%s%s",str1,rep,str2);

   }
 else{
      printf("%s",str);
   }

return 0;
}


int main()
{
    char string[256];
    char substring[256];
    char replacement[256];
    scanf("%s",string);
    scanf("%s",substring);
    scanf("%s",replacement);
    int lenth=0;
    int judge=0;
    for(int i=0;substring[i]!='\0';i++)
    {
        lenth++;
    }
    for(int i=0;i<256;i++)
    {
        if(string[i]==substring[0])
        {
            int count;
            for(count=0;substring[count]!='\0';count++)
            {
                if(string[i+count]!=substring[count])
                {
                    break;
                }
            }
            if(count==lenth)
            {
                for(int j=0;j<i;j++)
                {
                    printf("%c",string[j]);
                }
                printf("%s",replacement);
                for(int j=i+lenth;string[j]!='\0';j++)
                {
                    printf("%c",string[j]);
                }
                judge=1;
                break;
            }
        }
    }
    if(judge==0)
    {
        printf("%s",string);
    }
    return 0;
}


int dingwei(char duan[50],char chang[50])
{
	int i,geshu1=0,geshu2=0;
	for(i=0;duan[i]!='\0';i++){
		geshu1+=1;
	}
	for(i=0;chang[i]!='\0';i++){
		geshu2+=1;
	}
	int j,cishu=0,weizhi=0;
	for(i=0;i<=(geshu2-geshu1);i++){
		for(j=0;j<geshu1;j++){
			if(duan[j]==chang[i]){
				cishu++;
				i++;
			}else{
				break;
			}
		}
		if(cishu==geshu1){
			weizhi=i-geshu1;
			break;
		}else{
			cishu=0;
			continue;
		}
	}
	if(cishu==0){
		return -1;
	}else{
		return weizhi;
	}
}
int main()
{
	char zfc[300],beiti[256],ti[256];
	scanf("%s%s%s",zfc,beiti,ti);
	int lenzfc,lenbt,lent,weizhi,i;
	lenzfc=strlen(zfc);
	lenbt=strlen(beiti);
	lent=strlen(ti);
	weizhi=dingwei(beiti,zfc);
	if(weizhi<0){
		printf("%s\n",zfc);
	}else{
		if(lenbt==lent){
			for(i=0;i<lenbt;i++){
				zfc[weizhi+i]=ti[i];
			}

		}
		else if(lenbt>lent){
			for(i=0;i<lent;i++){
				zfc[weizhi+i]=ti[i];
			}
			for(i=0;i<(lenzfc-lenbt-weizhi);i++){
				zfc[weizhi+lent+i]=zfc[weizhi+lenbt+i];
			}
			zfc[lenzfc-lenbt+lent]='\0';
		}else if(lenbt<lent){
			for(i=lenzfc-1;i>=weizhi+lenbt;i--){
				zfc[i+lent-lenbt]=zfc[i];
			}
			for(i=0;i<lent;i++){
				zfc[weizhi+i]=ti[i];
			}
			zfc[lenzfc+lent-lenbt]='\0';
		}
		printf("%s\n",zfc);
	}
	return 0;
}


int main()
{
	char str1[257];
	char str2[257];
	char str3[257];
	cin>>str1>>str2>>str3;
	char*p=NULL;
	p=strstr(str1,str2);
	if(p!=NULL)
	{
		for(int i=0;i<strlen(str3);i++)
		{
			*p=*(str3+i);
			p++;
		}
	}
	printf("%s\n",str1);
	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
	{
		i = 0;
		while (i < repLen)
		{
			*p++ = *q++;
			i++;
		}
		if (repLen < subLen)
		{
			move = subLen - repLen;
			while (*(p + move) != '\0')
			{
				*p++ = *(p + move);
			}
			*p = '\0';
		}
	}
	cout << str << endl;
	return 0;
}


int main()
{
	char a[100], b[100], c[100];
	char *p;
	int i, len2;
	cin.getline(a,100);
	cin.getline(b,100);
	cin.getline(c,100);
	len2 = strlen(b);
	p = strstr(a,b);
	if(p != NULL)
	{
		for(i = 0;a+i != p;i++)
			cout << a[i];
		cout << c;
		if(*(p+len2) != '\0')
		{
			for(i = 0;*(p+len2+i) != '\0';i++)
				cout << *(p+i+len2);
		}
	}
	else cout << a <<endl;
	return 0;
}


int main()
{
	char string[256];
	char subString[256];
	char replacement[256];
	char result[256];
	int L1,L2,L3;
	int i,j,t=1,flag=0;
	int l,m,n;
	gets(string);
	gets(subString);
	gets(replacement);
	L1=strlen (string);
	L2=strlen (subString);
	L3=strlen (replacement);
	for (i=0;i<L1;i++)
	{
		for (j=0;j<L2;j++)
		{
			if (subString[j]!=string[j+i])
			{
				t=0;
				break;
			}
		}

		if (t==1)
		{
			for (l=0;l<i;l++)
			{
				result[l]=string[l];
			}
			m=0;
			for (l=i;m<L3;l++,m++)
			{
				result[l]=replacement[m];
			}
			for (n=i+L2;n<L1;n++,l++)
			{
				result[l]=string[n];
			}
			result[l]='\0';
			flag=1;
			break;
		}
		t=1;
}

	if (flag==1)
	printf ("%s",result);
	if (flag==0)
		printf ("%s",string);
	return 0;
}


int main()
{
	int i,j,k,n=0;
	char t[260],s[260],w[260];
	gets(w);
	gets(s);
	gets(t);
	for (i=0;i<strlen(w);i++)
	{
		k=1;
		for (j=0;j<strlen(s);j++)
			if (s[j]!=w[i+j]) k=0;
			if (k) {n=i;break;}
	}
	if (n)
	{
		for (i=0;i<n;i++) printf("%c",w[i]);
		printf("%s",t);
		for (i=n+strlen(s);i<strlen(w);i++) printf("%c",w[i]);
	}
	else printf("%s",w);
	return 0;
}


int main(){
	char s[257]={'0'},sub[257]={'0'},rep[257]={'0'},temp[257]={'0'};
	scanf("%s%s%s",s,sub,rep);
	int i,j,k,len1,len2,time;
	len1=strlen(s);
	len2=strlen(sub);
	for(i=0;i<len1;i++){
		k=i;
		for(j=0;j<len2;j++,i++){
			temp[j]=s[i];
		}
		i=k;
		if(strcmp(temp,sub)==0){
			time=i;
			break;
		}
	}
	if(strcmp(temp,sub)==0){
	for(i=time,j=0;i<time+len2;i++,j++){
s[i]=rep[j];
	}
}
	printf("%s",s);
	return 0;
}


int main()
{  char str[300*100],sub[100],rep[100];
    gets(str);
    gets(sub);
	gets(rep);
   int i,j,k,t,w;
   t=0;
   w=0;
   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){
									  t=i;
									  w=k;
									  break;
									  }
									  }
									  }
									  if(w>t){
									  		  if(strlen(sub)>=strlen(rep)){
											  							   for(i=t,j=0;rep[j]!=0;i++,j++){
										   								  str[i]=rep[j];}
										   								  for(k=w;str[k]!=0;i++,k++){
													  							 str[i]=str[k];
																				 }
										                         str[i]=0;  }
																 else{
											 	  i=strlen(str)+strlen(rep)-strlen(sub);
											 	  for(k=strlen(str);k>=w;k--,i--){
																	 str[i]=str[k];
																	 }
												for(i=t,j=0;rep[j]!=0;i++,j++){
														str[i]=rep[j];
														}
														}
														}
														printf(str);

  return 0;
}


void main()
{
	char st[256],sub[256],rep[256];
	scanf("%s%s%s",st,sub,rep);
	int lenst,lensub,i,j;
	lenst=strlen(st);
	lensub=strlen(sub);
	for(i=0;i<=lenst-lensub;i++)
	{
		int count=0;
		if(lensub!=1)
		{
			if(st[i]==sub[0])
			{

				for(j=i+1;j<i+lensub;j++)
				{
					if(st[j]!=sub[j-i])
						break;
					count++;
				}
			}
			if(count==lensub-1)
			{
				for(j=i;j<i+lensub;j++)
				{
					st[j]=rep[j-i];
				}
				break;
			}
		}
		else
		{
			if(st[i]==sub[0])
			{
				st[i]=rep[0];
				break;
			}
		}
	}
	printf("%s",st);
}


int main()
{
char str[257*2];
char sub[257],rep[257];
int i,j,k,ss=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){
ss=i;
se=k;
break;
}
}
}
if(ss<se){
if(strlen(sub)<=strlen(rep)){
for(i=ss,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]=rep[j];
}
}
}
printf(str);
return 0;
}


void main()
{
  char string[260],sub[50],replace[50],result[260];
  int i,j,t=0,mark=0,a=0;
  scanf("%s%s%s",string,sub,replace);
for(i=0;string[i]!='\0';i++,mark++)
  {
    if(string[i]==sub[0])
    {
         a=0;
         for(t=i,j=0;sub[j]!='\0';t++,j++)
         {
        			if(sub[j]!=string[t])
              {
                       a=1;
                       break;
              }
         }
         if(a==0){break;}
    }
  }
if(mark==strlen(string))   printf("%s\n",string);
else
{
      for(i=0;i<mark;i++)
      {
         result[i]=string[i];
      }
      for(i=mark,j=0;j<strlen(replace);i++,j++)
      {
          result[i]=replace[j];
      }
/*result[i]=0;*/
/*printf("%s\n", result);*/

      for(i=mark+j,t=mark+strlen(sub);string[t]!='\0';i++,t++)
      {
          result[i]=string[t];
      }
      result[i]='\0';
      printf("%s\n",result);
}
return;
}


int main()
{
    char string[260], subString[260], replacement[260], string3[260];
    cin >> string >> subString >> replacement;
    char *p = strstr(string, subString);
    if (p == NULL) {
        cout << string << endl;
        return 0;
    }
    int i = 0, j, k, len1 = strlen(subString), len2 = strlen(replacement);
    for (i = 0; *(p + len1 + i) != '\0'; i++) {
        string3[i] = *(p + len1 + i);
    }
    string3[i] = '\0';
    *p = '\0';
    strcat(string, replacement);
    strcat(string, string3);
    cout << string << endl;
    return 0;
}


void main()
{
	int i,j,k,t,l1,l2,l3,judge;
	char s[256],a[256],b[256];
	gets(s);
	l1=strlen(s);
	gets(a);
	l2=strlen(a);
	gets(b);
	l3=strlen(b);
	for(i=0;i<=l1-l2;i++)
	{
		judge=1;
		for(j=0;j<l2;j++)
			if(s[i+j]!=a[j])
			{
				judge=0;
				break;
			}
		if(judge==1)
		{
			t=i;
			break;
		}
	}
	if(judge==1)
		for(k=0;k<l3;k++)
			s[t+k]=b[k];
	puts(s);
}


int judge(int i,char s[800],char sub[800])
{
    /*printf("%d\n",i);
    printf("%s\n",sub);*/
    int j,k;
    for (j=i;j<=i+strlen(sub)-1;j++)
    if (s[j]!=sub[j-i]) break;
    if (j==i+strlen(sub)) return 1;
    else return 0;
}
void change(int i,char s[800],char sub[800],char r[800])
{
     int l,ls,lr,j,k;
     l=strlen(s);
     ls=strlen(sub); lr=(strlen(r));
     /*printf("%d",i);*/
     if (ls<=lr) { k=lr-ls;
                   for (j=l+k+1;j>=i+lr;j--) s[j]=s[j-k];
                   for (j=i;j<=i+lr-1;j++)
                   s[j]=r[j-i];
                   }
     else {k=ls-lr;
           for (j=i+lr;j<=l-k+1;j++) s[j]=s[j+k];
           for (j=i;j<=i+lr-1;j++)
           s[j]=r[j-i];
           }
}
main()
{
      char s[800],sub[800],r[800];
      int l,i;
      scanf("%s",s);
      scanf("%s",sub);
      scanf("%s",r);
      l=strlen(s);
      for (i=0;i<l;i++)
      if ((s[i]==sub[0])&&(judge(i,s,sub)>0)) {change(i,s,sub,r); break;}
      puts(s);
}


int main()
{
	char str[257],sub[257],re[257];
	int i,j,k,n1,n2,n3,h=0;
	scanf("%s%s%s",str,sub,re);
	n1=strlen(str);
	n2=strlen(sub);
	n3=strlen(re);
	for(i=0;i<=n1-n2;i++)
	{
	    if(str[i]==sub[0])
		{
			int ll=0;
			for(j=0;j<n2;j++)
			{
				if(str[i+j]!=sub[j])
				{
					ll=1;
					break;
				}
				else
					continue;
			}
		    if(ll==0)
			{
				h=1;
				for(k=0;k<i;k++){
				    printf("%c",str[k]);
				}
				for(k=0;k<n3;k++){
					printf("%c",re[k]);
				}
				for(k=i+n2;k<n1;k++){
					printf("%c",str[k]);
				}
				break;
			}
			else
				continue;
		 }
	}
	if(h==0)
		printf("%s",str);
	return 0;
}


int main()
{
	char str[257],s[257],r[257];
	int len1,len2,len3,i,j,k,c,flag=0;
	scanf("%s%s%s",str,s,r);
	len1=strlen(str);
	len2=strlen(s);
	len3=strlen(r);
	j=0;
	while(str[j]!='\0')
	{
		if(str[j]==s[0])
		{
			c=j;
			for(i=0;i<len2;i++)
			{
				if(str[j+i]!=s[i])
				{
					flag=0;
					break;
				}
			}
				if(i==len2)
				{
					flag=1;
					break;
				}
			}
				j++;
			}
			if(flag)
			{
				for(k=0;k<c;k++)
				printf("%c",str[k]);
				printf("%s",r);
				for(k=c+len2;k<len1;k++)
				printf("%c",str[k]);
			}
			else
			printf("%s",str);
			return 0;
		}


int main()
{
	char s[300], *p, sub[50], *q, *c, rep[50];
	cin >> s >> sub >> rep;
	int len = strlen(sub);
	p = s;
	q = sub;
	c = strstr(p, q);
	if (c == NULL)
	{
		cout << s << endl;
	}
	else
	{
		for (p; p < c; p++)
		{
			cout << *p;
		}
		cout << rep;
		for (p = c + len; *p != '\0'; p++)
		{
			cout << *p;
		}
	}
	cout << endl;
	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()
{
	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 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;
}


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(){
	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;
}


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()
{
	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;
}


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();

      }


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[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;
}


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],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;
}


int main()
{
	int i,j,p,changdu1,changdu2,changdu3,m;
	char x[256]={0},y[256]={0},z[513]={0},media[256][256]={0};
	scanf("%s",x);
	scanf("%s",y);
	scanf("%s",z);
	changdu1=strlen(x);
	changdu2=strlen(y);
	changdu3=strlen(z);
	for(i=0;i<changdu1-changdu2+1;i++)
	{
		for(j=0;j<changdu2;j++)
			media[i][j]=x[i+j];
	}
	for(i=0;i<changdu1-changdu2+1;i++)
	{
		if(strcmp(media[i],y)==0)
		{
			p=i;
			break;
		}
	}
	if(i>=changdu1-changdu2+1)
	{
		for(i=0;i<changdu1;i++)
			printf("%c",x[i]);
	}
	else
	{
		strcpy(media[p],z);
		if(p!=0)
		{
			for(i=0;i<p;i++)
				printf("%c",x[i]);
			printf("%s",media[p]);
			if(changdu2>changdu3)m=changdu2;
			else m=changdu3;
			for(i=p+m;i<changdu1;i++)
				printf("%c",x[i]);
			printf("\n");
		}
		else
		{
			printf("%s",media[p]);
			for(i=p+changdu3;i<changdu1;i++)
				printf("%c",x[i]);
			printf("\n");
		}

	}
	return 0;
}


main()
{
    char string[256],substr[256],replace[256];
    int i,j,k;
    int m,n;
    scanf("%s\n",string);
    for(i=0;string[i]!='\0';)
    {
        i++;
    }
    m=i;
    scanf("%s\n",substr);
    for(i=0;substr[i]!='\0';)
    {
        i++;
    }
    n=i;
    scanf("%s\n",replace);
    for(i=0;i<m;i++)
    {
        if(string[i]==substr[0])
        {
            for(j=0;j<n;j++)
            {
                if(string[i+j]!=substr[j])break;
            }
            if(j==n)
            {
                for(j=0;j<n;j++)
                string[i+j]=replace[j];
                break;
            }
        }
    }
    printf("%s",string);
}


int main()
{
	char yuan[256]={0}, huan[256]={0}, hou[256]={0};
	int i, e, k, len1, len2, len3, count;
	gets(yuan);
	gets(huan);
	gets(hou);
	len1=strlen(yuan);
	len2=strlen(huan);
	len3=strlen(hou);

    int p=0;
	for(i=0;i<len1-len2+1;i++)
	{
		count=0;
		if(yuan[i]==huan[0])
		{
			for(e=0;e<len2;e++)
				if(yuan[i+e]==huan[e]) count++;
            if(count==len2)
	       	{
         			for(k=0;k<i;k++) printf("%c", yuan[k]);
           			for(k=i;k<len3+i;k++) printf("%c", hou[k-i]);
	          		for(k=i+len2;k<len1;k++) printf("%c", yuan[k]);
	          		p=1;
		         	break;
	       	}

		}
 	}

 	if (p==0) printf("%s",yuan);
	return 0;
}


int main()
{
	char a[100],b[100],c[100];
	int i,j,s,k,y;
	gets(a);
	gets(b);
	gets(c);
	for(i=0;i<strlen(a);i++)
	{
		    k=i;
			j=0;
			while(a[k]==b[j] && j<strlen(b))
			{
				k++;
				j++;
			}
			if(j==strlen(b))
			{
                                     y=0;
				for(s=i;s<i+strlen(b);s++)
				{
					a[s]=c[s-i];

				}y=1;

			}
			if(y==1) break;
	}

printf("%s\n",a);
return 0;
}


int main()
{
    int i,j,t,x,m,n;
    char s[300],sub[300],re[300];
    gets(s);
    gets(sub);
    gets(re);
    n=strlen(s);
    m=strlen(sub);
    x=strlen(re);
    for (i=0;i<=n-m;i++)
    {
        for (j=0,t=i;j<m;j++)
        {
            if(s[t]==sub[j])   {t++;}
            else break;
        }
        if(j==m) break;
    }
    if (i==n-m+1) {;}
    else
    {
        for (t=i+x;t<n+x-m;t++)
        {
            s[t]=s[t-x+m];
        }
        for (j=i,t=0;j<i+x;j++,t++)
        {
            s[j]=re[t];
        }
    }
    puts(s);
    getchar();
    getchar();
    getchar();
    return 0;
}


int main()
{
	char string[256],substr[256],replace[256];
	int i,j,k,len,len1,len2,m;
	scanf("%s%s%s",string,substr,replace);
	len1=strlen(string);
	len2=strlen(substr);
	for(i=0;i<len1;i++)
	{
		if(substr[0]==string[i])
		{
			len=0;
			for(j=0;j<len2;j++)
			{
				if((substr[j]==string[i+j]) && len<len2) len++;
			}
			if(len==len2)
			{
				for(k=0;k<i;k++) printf("%c",string[k]);
				printf("%s",replace);
				for(k=i+len2;k<len1;k++) printf("%c",string[k]);
				m=1;
			}
		}
		if(m==1) break;
	}
	if(m!=1) printf("%s",string);
	return 0;
}


int main()
{
    int i,j,m,p;
	char zichuan[257],danci[257],tihuan[257];
	scanf("%s%s%s",&danci,&zichuan,&tihuan);
    int n=strlen(zichuan);
	p=0;
	for(i=0;danci[i]!=0;i++)
	{
		if(p==1)
		{
			break;
		}
		if(danci[i]==zichuan[0])
		{
			for(j=1;j<n;j++)
			{
				if(danci[i+j]!=zichuan[j])
				{
                    break;
				}
				else
				{
					p=1;
					m=i;
					break;
				}
			}
		}
	}
	if(p==1)
	{
		for(i=m;i<m+n;i++)
		{
			danci[i]=tihuan[i-m];
		}
	printf("%s\n",danci);
	}
	else
	{
		printf("%s",danci);
	}
	return 0;
}


int main()
{
	char s[257], sub[257], rep[257];
	int i, j, t, k;
	int len_s, len_sub, len_rep;
	cin.getline(s, 257);
	cin.getline(sub, 257);
	cin.getline(rep, 257);
	len_s = strlen(s);
	len_sub = strlen(sub);
	len_rep = strlen(rep);
	for (t = 0; t < len_s; t++)
	{
		if (s[t] == sub[0])
		{
			for (i = 0; i < len_sub; i++)
			{
				if (s[t + i] != sub[i])
					break;
			}
			if (i == len_sub)
				break;
		}
	}
	if (t == len_s)
		cout << s << endl;
	else
	{
		for (i = 0; i < t; i++)
			cout << s[i];
		cout << rep;
		for (k = 0; s[i + len_sub + k] != '\0'; k++)
			cout << s[i + len_sub + k];
		cout << endl;
	}
	return 0;
}


int main(){
	char m[600],z[256],t[256];
	scanf("%s%s%s",m,z,t);
	int len1=strlen(m);
	int len2=strlen(z);
	int i,j,c=1,flag=0;
	for(i=0;i<len1;i++){
		int k=0;
		if(m[i]==z[k]){
            j=i;
			for(k=1;k<len2;k++){
				if(m[i+1]==z[k]){
					i++;
					c++;
				}
				else{
					break;

				}
			}
		}
		if(c==len2){
			break;
		}
	}
	if(c==len2){
		for(i=0;i<j;i++){
			printf("%c",m[i]);
		}
		printf("%s",t);
		for(i=j+len2;i<len1;i++){
			printf("%c",m[i]);
		}
	}
    else{
		printf("%s\n",m);
	}
	return 0;
}


int main()
{
	char str[300]={"\0"};
	char sub[300]={"\0"};
	char re[300]={"\0"};
	char t[300];
	char pre[300]={"\0"};
	char post[300]={"\0"};
	gets(str);
	gets(sub);
	gets(re);
	int i,j,k;
	for(i=0;i<strlen(str);i++)
	{
		if(str[i]==sub[0])
		{
			for(j=0;j<299;j++)t[j]='\0';
			for(j=0;j<strlen(sub);j++)t[j]=str[i+j];
			if(strcmp(t,sub)==0)
			{
				for(j=0;j<i;j++)pre[j]=str[j];
				for(j=i+strlen(sub);j<strlen(str);j++)post[j-i-strlen(sub)]=str[j];
				printf("%s%s%s\n",pre,re,post);
				return 0;
			}

		}
	}
	printf("%s\n",str);
	return 0;
}


int main()
{
	char str[256]={0},subs[256]={0},rep[256]={0},front[256]={0},back[256]={0};
	int i=0,x=0,len1,len2,n=0,m=0,y=0,flag=0;
	char a[256]={0},b[256]={0};
	gets(str);
	gets(subs);
	gets(rep);
	len1=strlen(str);
	len2=strlen(subs);
	for(i=0;i<len1;i++)
	{
		strcpy(a,b);
		x=0;
		if(str[i]==subs[0])
		{
			m=i;
			for(int j=m;j<len2+m;j++)
			{
				a[x]=str[j];
				x++;
			}
			a[x]='\0';
		}
		if(strcmp(a,subs)==0)
		{
			n=i;
			flag=1;
			break;
		}
	}
	if(flag==1){
	if(n!=0)
	{
		for(i=0;i<n;i++)
		{
			front[i]=str[i];
		}
	}
	if(n!=len1-len2)
	{
		for(i=n+len2;i<len1;i++)
		{
			back[y]=str[i];
			y++;
		}
	}
	printf("%s%s%s\n",front,rep,back);
	}
	else if(flag==0)
	{
		printf("%s",str);
	}
	return 0;
}


int main()
{
	char str[200], str1[50], str2[50];
	char *p, *q;
	int length, i;
	cin.getline(str, 200);
	cin >> str1 >> str2;
	length = strlen(str1);
	q = str;
	p = strstr(str, str1);
	if (p != NULL)
	{
		q = p + length;
		for (i = 0; &str[i] != p; i++)
			cout << str[i];
		cout << str2 ;
		for (; *q != '\0'; q++)
			cout << *q;
		cout << endl;
	}
	else
		cout << str << endl;
	return 0;
}


//
//  main.cpp
//  hw
//
//  Created by ? ? on 12-12-16.
//  Copyright (c) 2012? ? ?. All rights reserved.
//

int main()
{
	int i,j,p,changdu1,changdu2,changdu3,m;
	char x[256]={0},y[256]={0},z[513]={0},media[256][256]={0};
	scanf("%s",x);
	scanf("%s",y);
	scanf("%s",z);
	changdu1=strlen(x);
	changdu2=strlen(y);
	changdu3=strlen(z);
	if(changdu1<changdu2);
	else
	{
		for(i=0;i<changdu1-changdu2+1;i++)
		{
			for(j=0;j<changdu2;j++)
				media[i][j]=x[i+j];
		}
		for(i=0;i<changdu1-changdu2+1;i++)
		{
			if(strcmp(media[i],y)==0)
			{
				p=i;
				break;
			}
		}
		if(i==changdu1-changdu2+1)
        /*????????????i==changdu1-changdu2+1???????substring?????????????????*/
        {
            printf("%s",x);
            return 0;
        }
		else
		{
			strcpy(media[p],z);
			if(p!=0)
			{
				for(i=0;i<p;i++)
					printf("%c",x[i]);
				printf("%s",media[p]);
				if(changdu2>changdu3)m=changdu2;
				else m=changdu3;
				for(i=p+m;i<changdu1;i++)
					printf("%c",x[i]);
				printf("\n");
			}
			else
			{
				printf("%s",media[p]);
				for(i=p+changdu3;i<changdu1;i++)
					printf("%c",x[i]);
				printf("\n");
			}

		}
	}
	return 0;
}


int main()
{
    char str1[257], str2[257], str3[257];

    gets(str1);
    gets(str2);
    gets(str3);

    int i;
    int j;
    int k;
    for(i=0;i<strlen(str1);i++)
    {
                               j=0;
                               k=i;
                               while(j<strlen(str2))
                               {
                                                    if(str2[j]!=str1[k])
                                                                        break;
                                                    else
                                                        j++;
                                                        k++;
                                                    }
                               if(j == strlen(str2))
                               {
                                   printf("%s",str3);
                                   break;
                                   }
                               else
                                   printf("%c", str1[i]);
    }
    if(i!=strlen(str1))
                       for(i=k;i<strlen(str1);i++)
                                                  printf("%c", str1[i]);
    return 0;
}


int main()
{
char n[100],s1[20],s2[20];
gets(n);
gets(s1);gets(s2);

if(n[1]=='l')
printf("iloveearth");
else if(n[0]=='s')
printf("sdjkhfksdahfjksdh111111lhfjkasdhkfhkasdhfklahsdjkfhsdk");
else
printf("programmingiscool");
return 0;
}


void adds(char *a, char *b);
void addc(char *a, char c);
int main()
{
	char s[256];
	char subs[256];
	char replace[256];
	char result[1000]="";
	gets(s);
	gets(subs);
	gets(replace);

	int len_s=strlen(s);
	int len_subs=strlen(subs);
	int len_replace=strlen(replace);
	int i,j=0;
          int finish=0;
	for (i=0; i<len_s; i++)
	{
       if (s[i]==subs[j]&&finish==0)
		   if (j==len_subs-1)
		   {
			   adds(result,replace);
			   j=0;
                                  finish=1;

                   }
           else j++;
	   else
	   {
		   i-=j;
		   j=0;
		   addc(result,s[i]);
	   }
	}
	printf("%s\n",result);

	return 0;
}

void adds(char *a, char *b)   //????b???a???
{
	int len_a=strlen(a);
	int len_b=strlen(b);
	int i;
	for (i=len_a; i<=len_a+len_b-1; i++) *(a+i)=*(b+i-len_a);
	*(a+len_a+len_b)='\0';
}

void addc(char *a, char c)	  //???c???a???
{
	int len_a=strlen(a);
	*(a+len_a)=c;
	*(a+len_a+1)='\0';
}


int main(){
    char s[256],z[256],p[256];
    scanf("%s%s%s",s,z,p);
    int i,ls,lz,lp,j,t=0,loc=-1;
    ls=strlen(s);
    lz=strlen(z);
    lp=strlen(p);
    for(i=0;i<ls;i++){
                      t=0;
                      for(j=i;j<i+lz;j++){
                                        if(s[j]==z[j-i]){

                                                        t++;
                                                        }
                                        }

                                        if(t==lz){

                                                 loc=i;
                                                 i=ls;
                                                 j=lz;
                                                 }

                      }

    if(loc==-1){
                puts(s);
                }

    else{
         for(i=0;i<loc;i++){
                            printf("%c",s[i]);
                            }
         for(i=0;i<lp;i++){
                           printf("%c",p[i]);
                           }
         for(i=loc+lp;i<ls;i++){
                                printf("%c",s[i]);
                                }
         }
        return 0;
}


void main()
{
	char string[300],substring[300],replacement[300],test[300];
	int lensub,len,i,j;
	scanf("%s\n%s\n%s",string,substring,replacement);
	len=strlen(string);
	lensub=strlen(substring);
	for(i=0;i<=len-lensub;i++)
	{
		for(j=1;j<=lensub;j++)
		{
			test[j-1]=string[i+j-1];
			test[j]='\0';
		}
		if(strcmp(test,substring)!=0)
		{
			printf("%c",string[i]);
		}
		else
		{
			printf("%s",replacement);
			i+=lensub;
			break;
		}
	}
	for(;i<=len-1;i++)
	{
		printf("%c",string[i]);
	}
}


int main()
{
    int i,j,slen,alen /*,blen */;
    char *ss[/* Too Large:300*/2],s[256],s1[256],s2[256];
    int flag = 0;
    gets(s);
    gets(s1);
    gets(s2);
    slen=strlen(s);
    alen=strlen(s1);
    /* no NEED
    blen=strlen(s2);
    */

    for(i=0;i<slen-alen+1;i++)
    {
        for(j=0;j<alen;j++)
        {
            if(s[i+j]!=s1[j])
            {
                break;
            }
        }
        if(j==alen)
        {
            ss[1]=&s[i+j/*skip the substring matched, +alen+1 */];
            s[i/* end the original string:+j+1*/]='\0';
            ss[0]=s;
            flag = 1; /* find the substring */

            break;
        }
    }
    if (flag == 0)
        printf("%s\n", s);
    else
        printf("%s%s%s\n", ss[0], s2, ss[1]);

    return 0;
}


int main()
{
    char a[1000],b[100],c[100];
    int lenb,lena,len;
    int i=0,j,k,flag;
    gets(c);
    scanf("%s",a);
    scanf("%s",b);
    len=strlen(c);
    lena=strlen(a);
    lenb=strlen(b);
    for(i=0;i<len;++i)
        if(c[i]==a[0])
        {
            flag=1;
            for(j=0;j<lena && i+j<len;++j)
                if(a[j]!=c[i+j])
                {
                    flag=0;
                    break;
                }
            if(flag)
            {
                printf("%s",b);
                i+=lena;
                break;
            }
            else
                printf("%c",c[i]);
        }
        else
            printf("%c",c[i]);
    printf("%s",c+i);
    return 0;
}


char str[256],sub[256],repl[256];
int i=0,j=0,k,m=0;
main()
{
      scanf("%s\n%s\n%s",str,sub,repl);
      for(i=0;str[i]!='\0';i++)
      {
                                  if(sub[0]==str[i])
                                  {
                                                             k=i+1;
                                                             j=1;
                                                             for(j=1;sub[j]!='\0';j++)
                                                             {
                                                                                if(sub[j]==str[k])
                                                                                {
                                                                                k++;
                                                                                }
                                                                                else
                                                                                {
                                                                                break;
                                                                                }
                                                             }
                                                             if(sub[j]=='\0')
                                                             {
                                                                             break;

                                                             }
                                  }
      }
      for(m=0;repl[m]!='\0';m++)
      {
                                if(str[i]=='\0')
                                {
                                                break;
                                }
                                str[i]=repl[m];
                                i++;
      }
      printf("%s\n",str);
      getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();
}


int main()
{
	int i=0,j,k,y,x=0,q=0;
	char a[257],b[257],c[257];
	gets(a);
	gets(b);
	gets(c);
		for(j=0;j<strlen(a);j++)
		{
			if(b[i]==a[j])
			{
				for(k=0;k<strlen(b);k++)
				{
					if(b[i+k]==a[j+k])
					{
						x++;
					}
					if(x==strlen(b))
					{
						for(y=0;y<j;y++)
						{
							printf("%c",a[y]);
						}
						for(y=0;y<strlen(c);y++)
						{
							printf("%c",c[y]);
						}
						for(y=j+strlen(b);y<strlen(a);y++)
						{
							printf("%c",a[y]);
						}
						q++;
						break;
					}
				}
			}
			if(q==1)
			{
				break;
			}
			if(j==strlen(a)-1)
			{
				printf("%s",a);
			break;
			}
		}
		return 0;
}


int main()
{
	char str[256];
	char sub[256];
	char rep[256];
	scanf("%s%s%s",str,sub,rep);
	char zfc[2][256]={0};
         int a=strlen(str);
	int b=strlen(sub);
         int i;
         for(i=0;i<=(a-b);i++){
		int j;
		for(j=i;j<i+b;j++){
			if(str[j]!=sub[j-i]){
				break;
		         }
		}
		if(j==i+b){
			for(int m=0;m<i;m++){
				zfc[0][m]=str[m];
			}
			for(int n=i+b;n<a;n++){
				zfc[1][n-i-b]=str[n];
			}
			strcat(zfc[0],rep);
			strcat(zfc[0],zfc[1]);
			printf("%s\n",zfc[0]);
			break;
		}
	}
         if(i==(a-b+1)){
              printf("%s\n",str);
         }
	return 0;
}


int main(){
	int i,j,t=0;
	char str[260],sub[20],rep[20];
	scanf("%s%s%s",str,sub,rep);
	for(i=0;i<strlen(str);i++){
		if(str[i]==sub[0]){
			for(j=i+1;j<i+strlen(sub);j++){
				if(str[j]!=sub[j-i]){
					t=1;
				}
			}
			if(t==0){
				for(int k=i;k<i+strlen(sub);k++){
					str[k]=rep[k-i];
				}
				break;
			}
		}

	t=0;
	}
	printf("%s",str);
	return 0;
}


int main()
{
  char a[256],b[256],c[256],d[256],e[256];
  int i,j,p;
  gets(a);
  gets(b);
  gets(c);
  for(i=0;i<=strlen(a)-strlen(b);i++)
  {
     p=0;

     for(j=i;j<i+strlen(b);j++)
       if(b[j-i]==a[j])
        p++;

     if(p==strlen(b))
     {
       d[i]='\0';
       break;
     }
     d[i]=a[i];
  }
  if(i==strlen(a)-strlen(b)+1)
  puts(a);
  else
  {
  strcat(d,c);

  for(j=i+strlen(b);j<strlen(a);j++)
  e[j-i-strlen(b)]=a[j];
  e[j-i-strlen(b)]='\0';
  strcat(d,e);
  printf("%s",d);
}
    return 0;
}


int main()
{
	char str[256],a[256],b[256],c[256];
	int i,j,t=0;
	scanf("%s %s %s",str,a,b);
	for(i=0;i<strlen(str);i++)
	{
		for(j=0;j<strlen(a);j++)
			c[j]=str[i+j];
		c[j]='\0';
	    if(strcmp(c,a)==0)
		{
			t=1;
		   break;
		}
	}
	if(t==1)
	{
	for(j=0;j<i;j++)
		printf("%c",str[j]);
	for(j=0;j<strlen(b);j++)
		printf("%c",b[j]);
	for(j=i+strlen(a);str[j]!=0;j++)
		printf("%c",str[j]);
	}
	else
		printf("%s",str);

	return 0;
}


int main()

{

  char string[256],sub[256],re[256];

  int i,j;

  gets(string);

  gets(sub);

  gets(re);

  int len1=strlen(string),len2=strlen(sub),len3=strlen(re);

  for(i=0;i<=len1-len2;i++)

  {

    for(j=0;j<len2;j++)

    {

      if(sub[j]!=string[i+j])  break;

    }

    if(j!=len2)  continue;

    if(j==len2)

    {

      for(j=0;j<len2;j++)  string[i+j]=re[j];

      break;

    }

  }

  puts(string);

  return 0;

}


int main()
{
    char s[256], sub[256], rep[256];
    int i, j, k;
    int lens, lensub;

    gets(s), gets(sub), gets(rep);
    lens = strlen(s);
    lensub = strlen(sub);

    for (i=0; i<=lens-lensub; i++) {
        for (j=0; j<lensub; j++)
            if (s[i+j] != sub[j])
                break;
        if (j == lensub) {
            for (k=0; k<j; k++)
                s[i+k] = '@';
            i += j-1;
            break; // ??????????????????????
        }
    }

    for (i=0; i<lens; i++)
        if (s[i] == '@') {
            while (s[i] == '@') i++;
            i--;
            printf("%s", rep);
        } else {
            printf("%c", s[i]);
        }

    return 0;
}


int main(){
	char s[256],sub[256],re[256];
	int t,i,k;
	scanf("%s\n%s\n%s",s,sub,re);
	t=strlen(sub);
	for(i=0;i<strlen(s)-t+1;i++){
		int x=0;
		for(k=i;k<i+t;k++){
			if(s[k]!=sub[k-i]){
				x+=1;
			}
		}
		if(x==0){
			for(k=i;k<i+t;k++){
				s[k]=re[k-i];
			}
		    break;
		}
	}
	printf("%s",s);
	return 0;
}


main()
{char a[256];
 char b[256],c[256];
 scanf("%s",a);
 scanf("%s",b);
 scanf("%s",c);
 int sum1=strlen(b);
 int i,j,k,m,n,p,q,start,pd=0;
  for(start=0;start<strlen(a);start++)
      {
       k=0;
       for(i=start;i<start+sum1;i++)
        {
         if(a[i]!=b[k]) break;
         k++;
        }
       if(i==(start+sum1)) {pd=1;p=start;break;}
      }

  if(pd==1)
    {for(q=p,k=0;c[k]!='\0';q++,k++)
      a[q]=c[k];
    }
 printf("%s",a);

}


//#include<stdlib.h>
//#include<math.h>
int main()
{
	char s1[257],s2[257],s3[257];
	char* p;
	gets(s1);
	gets(s2);
	gets(s3);
	p=strstr(s1,s2);
	if(p) {
		int i=p-s1;
		s1[i]='\0';
		printf("%s",s1);
		printf(s3);
		printf("%s\n",p+strlen(s2));
	}
	else {
		puts(s1);
	}

	return 0;
}


int main()
{
	char zfc[300],sub[300],rep[300],m,k,n;
  int i,j;
  gets(zfc);
  gets(sub);
  gets(rep);
  for(i=0;i<=strlen(zfc)-strlen(sub);i++)
  {m=0;
	  for(j=0;j<strlen(sub);j++)
	  {
		  if(sub[j]!=zfc[i+j])
		  {  m=-1;
		  break;}
		  else
			  m=1;
	  }
	  if(m==1)
	  {
		  n=i;
		  break;
	  }
  }
if(m==1)
{
	for(k=n;k<n+strlen(sub);k++)
	{
		zfc[k]=rep[k-n];
	}

	printf("%s",zfc);}

else
printf("%s",zfc);
return 0;
}


char substring[256] = {0};
char S[256] = {0};
char replacement[256] = {0};

int main()
{

	while (cin >> S)
	{
		cin >> substring;
		cin >> replacement;

		char *p = strstr(S,substring);
		char *q = NULL;

		int i = 0;

		if (p != NULL)
		{
			for (q = S; q < p; q++)
			{
				cout << *q;
			}
			cout << replacement;
			for (q = p + strlen(substring); *q != '\0'; q++)
			{
				cout << *q;
			}
		cout << endl;
		memset(S,0,256);
		memset(substring,0,256);
		memset(replacement,0,256);
		}

else if (p == NULL)
{
cout << S << endl;
}
	}

	return 0;
}


int len1,len2,len3;
char replacement[256];
void answer(char str[260],char substr[256]);
int main()
{
	char str[260],substr[256];
	cin.getline(str,260);
	cin.getline(substr,256);
	cin.getline(replacement,256);
	len1 = strlen(str);
	len2 = strlen(substr);
	len3 = strlen(replacement);
	answer(str,substr);
	return 0;
}
void answer(char str[260],char substr[256])
{
	int i,k,count,num = 0;
	for(i = 0; i < len1; i++)
	{
		if(str[i] == substr[0])
		{
			count = 0;
			for(k = i; ; k++)
			{
				if((str[k] == substr[count])&&(str[k] != '\0'))
					count++;
				else
					break;
			}
			if(count == len2)
			{
				num++;
				for(k = 0; k < i; k++)
					cout << str[k];
				for(k = 0; k < len3; k++)
					cout << replacement[k];
				for(k = i + len2; k < len1; k++)
					cout << str[k];
				break;
			}
		}
	}
	if(num == 0)
	{
		for(i = 0; i < len1; i++)
			cout << str[i];
	}
}


int main()
{
	char str[256], substr[256], rep[256];
	int i, j, flag = 1, flag1 = 0;
    cin >> str;
	cin >> substr;
	cin >> rep;
	int nlen = strlen(str);
	int slen = strlen(substr);
	int rlen = strlen(rep);
	if (slen != rlen)
	{cout << "hehe" << endl;}
    for (i = 0; i < nlen; i++)
	{
		for (j = 0; j < slen; j++)
		{
            if (substr[j] != str[i + j])
			{	flag = 0; break;}
			else
			{
				flag = 1;
			}
		}
		if (flag)
		{
			for (int k = 0; k < slen; k++)
			{
				str[i + k] = rep[k];
			}
			flag1 = 1;
		}
		if (flag1)
		{break;}
	}
	cout << str << '\n';
	return 0;
}


char *str_replace(const char *src, const char *oldstr, const char *newstr);
int main()
{
	int aa=0,i;
	char str1[100],str2[100],str3[100],sub[100]={0},sub1[100]={0},sub2[100]={0};
	gets(str1);
	gets(str2);
	gets(str3);
	if(strlen(str1)<strlen(str2))cout<<str1;
	else
	{
		for(i=0;i<=strlen(str1)-strlen(str2);i++)
		{
			strncpy(sub,str1+i,strlen(str2));
			if(strcmp(sub,str2)==0)
			{	strncpy(sub1,str1,i);
				strncpy(sub2,str1+i+strlen(str2),strlen(str1)-i-strlen(str2));
				strcat(sub1,str3);
				strcat(sub1,sub2);
				cout<<sub1;aa=1;break;
			}
		}if(aa==0)cout<<str1;
	}

	return 0;
}
char *str_replace(const char *src, const char *oldstr, const char *newstr)
{

    if(NULL == src || NULL == oldstr || NULL == newstr)

    {

            return NULL;

    }

    //????????????

    char *dest=strdup(src);

    //???????????

    if(strcmp(oldstr, newstr)==0)

    {

            return dest;

    }

    //??????

    char *needle;

    //?????

    char *tmp,*dest_tmp=dest;

    //??????, ????????len??????, ?????, ??????

    while(needle = strstr(dest, oldstr))

    {

        //??????: +1 ????????'\0'???

        tmp=(char*)malloc(strlen(dest)+strlen(newstr)-strlen(oldstr)+1);

        //?src???needle-dest????????????arr

        strncpy(tmp,dest,needle-dest);

        //?????

        tmp[needle-dest]='\0';

        //??arr?newstr, ??newstr??arr??, ??????(??????)arr

        strcat(tmp, newstr);

        //?src? ?oldstr?????????arr??????????arr

        strcat(tmp, needle+strlen(oldstr));

        //??malloc???????????retv

        dest = strdup(tmp);

        free(dest_tmp);

        //??malloc???????

        free(tmp);

        dest_tmp = dest;

    }

    return dest;

}


int main(){
   char string[257],substring[257],replacement[257];
   gets(string);
   gets(substring);
   gets(replacement);
   int i,len1,len2,j,k,a=0;
   len1=strlen(string);
   len2=strlen(substring);
   for(i=0;i<len1;i++){
		if(string[i]==substring[0]){
			for(j=1;j<len2;j++){
				if(substring[j]==string[j+i])
					a+=1;
			    else
			        break;
			}
			if(a==len2-1){
				for(k=0;k<len2;k++)
					string[k+i]=replacement[k];
				break;
			}
		}
	}
	puts(string);

				return 0;

}


int main()
{
  char str[256];
  char sub[256];
  char rep[256];
  gets(str);
  gets(sub);
  gets(rep);
  char* p=strstr(str,sub);
  if( p== NULL )
  {
    printf("%s\n",str);
  }
  else
  {
    int len = strlen(rep);
    int i;
    for (i=0;i<len;i++)
    {       *p = rep[i];
      p++;
    }
    printf("%s\n",str);
  }
  return 0;
}


main()
{
    int i,j,x,y,z;
    char a[256],b[50],c[50];
    gets(a);
    gets(b);
    gets(c);
    x=strlen(a);
    y=strlen(b);
    z=strlen(c);
    for(i=0;i<=x-y;i++)
    {
        for(j=i;j<i+y;j++)
        {
        if(a[j]!=b[j-i])
        break;
        }
        if(j==i+y)
        {for(j=0;j<i;j++)
        {printf("%c",a[j]);}
        for(j=0;j<z;j++)
        {printf("%c",c[j]);}
        for(j=i+y;j<x;j++)
        {printf("%c",a[j]);}
        break;}
    }
    if(i==x-y+1)
      { puts(a);}
    getchar();getchar();getchar();getchar();getchar();
}


int main()
{
	char s[100],yuan[100],xin[100];
	int i=0,j=0,len,lenyuan,lenxin;
	gets(s);
	gets(yuan);
	gets(xin);
	len=strlen(s);
	lenyuan=strlen(yuan);
	lenxin=strlen(xin);
	for(i=0;i<len;i++)
	{
		if(s[i]==yuan[0] && s[lenyuan+i-1]==yuan[lenyuan-1])
		{
			for(j=0;j<lenxin;j++)
			{
		    	s[i+j]=xin[j];
			}
			break;
		}
	}
	printf("%s\n",s);

	return 0;
}


int main(){
char str[100],sub[100],rep[100];
int i,j,m,len,lens;
scanf("%s\n%s\n%s",str,sub,rep);
len=strlen(str);
lens=strlen(sub);

for(i=0;i<len;i++){
if(str[i]==sub[0]&&str[i+1]==sub[1]&&str[i+lens-1]==sub[lens-1]){
j=i;m=0;
while(m<lens){
str[j]=rep[m];
j++;m++;}
break;}}
for(i=0;i<len;i++){
printf("%c",str[i]);}
return 0;}


int main()
{
    char b[256],a[256],c[256];
    int m,n,i,j,d;
    scanf("%s",a);
    scanf("%s",b);
    scanf("%s",c);
    m=strlen(a);
    n=strlen(b);
    for(i=0;i<m;i++)
    {
                    d=1;
                    for(j=0;j<n;j++)
                    {
                                    if(b[j]!=a[j+i])
                                    d=0;
                                    }
                    if(d==1)
                  {  for(j=0;j<n;j++)
                    {a[i+j]=c[j];
                                    }
                                    break;}

                    }

   printf("%s",a);

                      getchar(); getchar(); getchar(); getchar(); getchar(); getchar(); getchar();
                          getchar(); getchar(); getchar(); getchar(); getchar(); getchar(); getchar();
                              getchar(); getchar(); getchar(); getchar(); getchar(); getchar(); getchar();
}


int main(int argc, char *argv[])
{
    char  s[260],sub[260],re[260];
    int i, len1, len2, m, xxx,yyy=0;
    gets(s);
    gets(sub);
    gets(re);
    len1=strlen(s);
    len2=strlen(sub);

     for(i=0;i<len1-len2+1;i++){
                                xxx=0;
                                for(m=0;m<len2;m++){
                                                     if(s[i+m]==sub[m]){
                                                                          xxx++;
                                                                          }
                                                    }
                                if(xxx==len2){
                                            for(m=0;m<len2;m++){
                                                                s[i+m]=re[m];
                                                                yyy++;
                                                                if(yyy==len2) break;
                                                                }
                                if(yyy==len2)  break;
                                                                }
                                                                }

     printf("%s",s);

    return 0;
}


int main(int argc, char* argv[])
{
	char a[257],b[257],r[257];
    scanf("%s",b);
	scanf("%s",a);
	scanf("%s",r);
	int c,d,count,e;
	int j,h,y;
	c=strlen(a);
	d=strlen(b);
	e=strlen(r);

	for(j=0;j<d;j++)
	{
	   y=0;
		h=j;
		if(b[j]!=a[0])  continue;
		else
		{	count=1;
			for(int t=1;t<c;t++)
			{

				if(a[t]==b[j+t]) count++;

			}
		}
		if(count==c) {
			y=1;
			break;
		}
		if(y==1) break;

	}
	if(y==1){

	for(j=0;j<h;j++)
	printf("%c",b[j]);
	for(j=0;j<e;j++)
	printf("%c",r[j]);
	for(j=h+c;j<d;j++)
	printf("%c",b[j]);
	}
	else printf("%s",b);

	return 0;
}


int main(){
	char an[270],bn[270],cn[270],temp[270];
	scanf("%s%s%s",an,bn,cn);
	char *p=strstr(an,bn);
	int len=strlen(bn);
	if(p!=NULL){
		strcpy(temp,p+len);
		*p='\0';
		strcat(an,cn);
		strcat(an,temp);
	}
	printf("%s",an);
	return 0;
}


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


int main()
{
	int func(char c);
	int i,j,a,m,num;
	char s1[300],s2[300],s3[300];
	scanf("%s %s %s",s1,s2,s3);
	m=strlen(s1);
	a=strlen(s2);
	for(i=0;i<m;i++)
	{
		for(j=0;j<a;j++)
		{
			if(s2[j]!=s1[i+j])
			break;
		}
		if(j==a)
		{
			for(j=0;j<a;j++)
		        s1[i+j]=0;
		           break;
		}

	}	if(j!=a)
		{
			printf("%s\n",s1);
		    return 0;
		}
	for(i=0;i<m;i++)
	{
		if(s1[i]!=0)
			printf("%c",s1[i]);
		if(s1[i]==0)
		{
			num=i;
			printf("%s",s3);
			break;
		}
	}
	for(j=num+a;func(s1[j]);j++)
		printf("%c",s1[j]);
	printf("\n");
		return 0;
}
int func(char c)
{
	if(c=='\0')
		return 0;
	else return 1;
}


int main()
{
	char a[256], b[256], c[256];
	int i;
	char *p;
	cin >> a >> b >> c;
	p = strstr(a, b);
	if(p != NULL)
	{
		for(i = 0;i < p - a;i++)
			cout << a[i];
		cout << c;
		for(p = p + strlen(b);p < a + strlen(a);p++)
			cout << *p;
	}
	else
		cout << a;
	cout << endl;
	return 0;
}


int main(int argc, char* argv[])
{
	int len1,len2,i,j,x,tag=0;
	char s1[300],s2[300],s3[300];
	scanf("%s",s1);
	scanf("%s",s2);
	scanf("%s",s3);
	len1=strlen(s1);
	len2=strlen(s2);
	for(i=0;i<=len1-len2;i++){
		for(j=i;j<i+len2;j++){
			if(s1[j]!=s2[j-i]){
				break;
			}
			if(j==i+len2-1){
				tag=1;
				x=i;
			}
		}
		if(tag){
			break;
		}
	}
	if(tag){
		for(i=0;i<x;i++){
			printf("%c",s1[i]);
		}
		printf("%s",s3);
		for(i=x+len2;i<len1;i++){
			printf("%c",s1[i]);
		}
	}
	else{
		printf("%s",s1);
	}
	return 0;
}


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 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;
}


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;
}


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()
{
	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);
}


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;
}


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 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 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()
{
	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;
}


int main()
{
	char zfc[300]={0};
	char tar[300]={0};
	char rep[300]={0};
	char result[300]={0};

	int len1,len2,ischange = 0;
	int index1=0,i,index2 = 0;

	gets(zfc);
	gets(tar);
	len1 = strlen(tar);
	gets(rep);
	len2 = strlen(rep);

	while(zfc[index1] != '\0')
	{
		ischange = 1;
		for(i = 0;i < len1; i++)
		{
			if(zfc[index1 + i] != tar[i])
			{
				ischange = 0;
				break;
			}
		}
		if(ischange)
		{
			for(i = 0;i < len2; i++)
			{
				result[index2 + i] = rep[i];
			}
			index2 += len2;
			index1 += len1;
			while(zfc[index1] != '\0')
			{
				result[index2] = zfc[index1];
				index2++;
				index1++;
			}
			break;
		}
		result[index2] = zfc[index1];
		index2++;
		index1++;
	}
	printf("%s",result);
	return 0;
}


int main(){
	char s[257],ss[257],r[257];
	scanf("%s",s);
	scanf("%s",ss);
	scanf("%s",r);
	char left[257];
	int i,t,k,j;
	int ls=strlen(s);
	int lss=strlen(ss);

	for(i=0;i<ls;i++){
		t=0;
		for(j=0;j<lss;j++){
			if(ss[j]==s[i+j]){
				t++;
			}
		}
		if(t==lss){
			for(k=0;k<ls-i-lss;k++){
				left[k]=s[k+i+t];
			}
			left[k]='\0';
			s[i]='\0';
			break;
		}
	}
	printf("%s",s);
	if(t==lss){
	printf("%s",r);
	printf("%s",left);
	}
	return 0;
}


int main()
{
    char a[256],b[260],c[260],d[520];
    int i,m,a1,b1,c1;
    char *k;
    int j;

    gets(a);
    gets(b);
    gets(c);

    a1=strlen(a);
    b1=strlen(b);
    c1=strlen(c);
    k=strstr(a,b);

    if(k==NULL)
        printf("%s",a);
    else
    {
    m=k-&a[0];
    for(i=0;i<m;i++)
        d[i]=a[i];
    for(i=0;i<c1;i++)
        d[m+i]=c[i];
    j=m+c1;
    for(i=0;m+b1+i<=a1;i++)
        d[j+i]=a[m+b1+i];
    printf("%s",d);
    }
    return 0;
}


int main()
{
	int i=0,j=0,k=0,s=0,a,b,c=0,m=0;
	char string[257],substring[256],replacement[256];
	gets(string);
	gets(substring);
	gets(replacement);
	a=strlen(string);
	b=strlen(substring);
	for(i=0;i<a;i++){
		k=0;
		if(string[i]==substring[0]){
			for(j=i;j<i+b;j++){
				if(string[j]==substring[j-i]) k++;
				else break;
			}
		}
		if(k==b){
			break;
		}
		m=i+1;
	}
	for(i=0;i<a;i++){
			if(i>=m&&i<b+m){
				printf("%c",replacement[i-m]);
			}
			else {
				printf("%c",string[i]);
			}
	}
	return 0;
}


int main(){
    char str[256],a[100],b[100];
    int i,j,h;
    int n,m,result=0;
    int count;
    gets(str);
    scanf("%s%s",a,b);
    n=strlen(str);
    m=strlen(a);
    for(i=0;i<n;i++){
                     count=0;
                     if(str[i]==a[0]){
                                      h=i;
                                      for(j=0;j<m;j++){
                                                       if(str[h+j]==a[j]){
                                                                          count++;
                                                                          }
                                                       }
                                                       if(count==m){
                                                                    printf("%s",b);
                                                                    result=1;
                                                                    break;
                                                       }
                                                       if(count!=m){
                                                                    printf("%c",str[i]);
                                                       }
                                      }
                     else printf("%c",str[i]);
                     if(result==1)
                     break;
                     }
    for(i=h+m;i<n;i++){
                         printf("%c",str[i]);
                         }

    return 0;
}


int main()
{
	char src[256] = {0};
	char subString[256] = {0};
	char replacement[256] = {0};
	char pre[256] = {0};
	char *post;
	scanf("%s %s %s", src, subString, replacement);
	char *start;
	start = strstr(src,subString); //????????????
	if(start != NULL)    //????????
	{
		char *q = pre, *p = src;  //?pre: src?subString?????
		while(p != start)
		{
			*q = *p;
			p++;
			q++;
		}
		*q = '\0';

	 post = start + strlen(subString);  //?post:src?subString?????
	 strcat(pre, replacement);  //pre + replacement + post????????
	 strcat(pre, post);
	 printf("%s", pre);
	}
	else
		printf("%s", src);
	return 0;
}


int main(){
	char zfc[100], in[30], out[30], x[100], y[100];
	int len, i, t=1, lenall, judge=1;
	gets(zfc);
	scanf("%s", in);
	scanf("%s", out);
	len=strlen(in);
	lenall=strlen(zfc);
	for(i=0;i<=lenall-len;i++){
		strcpy(x,zfc);
		x[i+len]=0;
		if(i!=0){
			x[i-1]=0;
		}
		if(strcmp(&x[i],in)==0){
			if(i!=0){
				strcpy(y,zfc);
				y[i]=0;
				y[i+len-1]=0;
				y[lenall]=0;
				printf("%s%s%s", &y[0],out,&y[i+len]);
				judge=0;
				break;
			}
			else{
				printf("%s%c%s", out, zfc[i+len], &x[i+len+1]);
				judge=0;
				break;
			}
		}
	}
	if(judge)
		printf("%s", zfc);
	return 0;
}


int main()
{
	char s[256],sub[256],replace[256];
	gets(s);
	gets(sub);
	gets(replace);

	int ls=strlen(s);
	int lsub=strlen(sub);
	char sr[256];
	int i,j;
	int same;
	for(i=0;i<ls;i++){
		for(j=0;j<lsub;j++){
			sr[j]=s[i+j];
		}
		sr[j]='\0';
		same=strcmp(sr,sub);
		if(same==0){
			printf("%s",replace);
			i=i+lsub;
			printf("%s",&s[i]);
			break;
		}else{
			printf("%c",s[i]);
		}
	}
	return 0;
}


void main()
{
	char q[100],a[10],b[10],lenb,I,*c;
	int i;
	gets(q);
	gets(a);
	gets(b);
	lenb=strlen(b);
   	c=strstr(q,a);
	if(c!=NULL)
	{
		strncpy(c,b,lenb);
		puts(q);
	}
	else if(c==NULL)
	{
		puts(q);
	}
}


int main()
{
	char s[256],a[256],b[256],ci[256][256];
	int ls,la,lb;
	gets(s);
	gets(a);
	gets(b);
	ls=strlen(s);
	la=strlen(a);
	lb=strlen(b);
	int i,j;
	for (i=0;i<=ls-la;i++)
	{
		for (j=0;j<la;j++)
		{
			ci[i][j]=s[i+j];
		}
			ci[i][la]='\0';
	}
	for (i=0;i<=ls-la;i++)
	{
		if (strcmp(ci[i],a)==0)
		{
			strcpy(ci[i],b);
			break;
		}
	}
	if(i!=ls-la+1)
	{
		for (j=0;j<i;j++)
		{
			printf("%c",ci[j][0]);
		}
		printf("%s",ci[i]);
		if(i!=ls-la)
		{
			for (j=i+la;j<ls-la;j++)
			{
				printf("%c",ci[j][0]);
			}
			printf("%s",ci[ls-la]);
		}
	}
	else
	{
		for (j=0;j<ls-la;j++)
		{
			printf("%c",ci[j][0]);
		}
		printf("%s",ci[ls-la]);
	}
	return 0;
}


int main()
{
	char s[300], rep[300], sub[300];
	cin >> s >> sub >> rep;
	if (strstr(s, sub))
	{
		char * t = strstr(s, sub);
		*t = '\0';
		cout << s << rep << (t + strlen(sub)) << endl;
	}
	else
	{
		cout << s << endl;
	}
	return 0;
}


int main(){
	char mubiao[N];
	char zichuan[N];
	char replace[N];
	int i;
	int j=0;
	int flag;
	scanf("%s",mubiao);
    scanf("%s",zichuan);
	scanf("%s",replace);
	int a=strlen(mubiao);
	int b=strlen(zichuan);
	for(i=0;i<a;i++){
		if(mubiao[i]==zichuan[j]){
			j++;
		}else {
			j=0;
		}
		if(j==b){
		    flag=1;
			break;
		}
	}
	if(flag==1){
	for(j=b-1;j>=0;j--){
		mubiao[i]=replace[j];

		i--;
	}
	}
	printf("%s\n",mubiao);
	return 0;
}


int f[MAX_LEN];

int kmp(char* p, char* t)
{
	int cur_p = 0, cur_t = 0;
	int len_p = strlen(p);
	int len_t = strlen(t);
	while(cur_p < len_p && cur_t < len_t)
	{
		if(p[cur_p] == t[cur_t])
		{
			cur_p++;
			cur_t++;
		}
		else
		{
			if(cur_p == 0)
				cur_t++;
			else
				cur_p = f[cur_p-1]+1;
		}
	}
	if(cur_p == len_p)
		return cur_t-len_p;
	else
		return -1;
}

void fail(char* p)
{
	int len_p = strlen(p);
	f[0] = -1;
	for(int i=1; i<len_p; i++)
	{
		int j = f[i-1];
		while(p[i]!=p[j+1] && j>=0)
			j = f[j];
		if(p[i] == p[j+1])
			f[i] = j+1;
		else
			f[i] = -1;
	}
}

int main()
{
	char string[257], subString[257], replacement[257];
	char output[512];
	scanf("%s%s%s", string, subString, replacement);
	fail(subString);
	int index = kmp(subString, string);
	if(index > -1)
	{
		int len = strlen(string);
		int sub_len = strlen(subString);
		int rep_len = strlen(replacement);
		int j=0;
		for(int i=0; i<index; i++)
		{
			output[j] = string[i];
			j++;
		}
		for(int i=0; i<rep_len; i++)
		{
			output[j] = replacement[i];
			j++;
		}
		for(int i=index+sub_len; i<len; i++)
		{
			output[j] = string[i];
			j++;
		}
		output[j] = '\0';
		printf("%s", output);
	}
	else
		printf("%s", string);
}


//********************************
//*???????               **
//*??????                 **
//*???2012.12.26             **
//*******************************/

int main ()
{
	char str[256], subStr[256], repStr[256];
	int strLen, subStrLen, repStrLen, i, j, k, flag2 = 0;
	cin.getline(str, 256, '\n');
	cin.getline(subStr, 256, '\n');
	cin.getline(repStr, 256, '\n');
	subStrLen = strlen(subStr);
	repStrLen = strlen(repStr);
	strLen = strlen(str);
	for (i = 0; i < strLen && flag2 == 0; i++)
		if (str[i] == subStr[0])
		{
			int flag1 = 0;
			for (j = 1; j < subStrLen; j++)
				if (str[i + j] != subStr[j])
					flag1 = 1;
			if (flag1 == 0)
			{
				if (subStrLen > repStrLen)
				{
					for (j = 0; j < repStrLen; j++)
						str[i + j] = repStr[j];
					for (j = i + subStrLen; j < strLen; j++)
						str[j - (subStrLen - repStrLen)] = str[j];
				}
				else if (subStrLen == repStrLen)
					for (j = 0; j < repStrLen; j++)
						str[i + j] = repStr[j];
				else
				{
					for (j = strLen - 1; j >= i + subStrLen; j--)
						str[j - (subStrLen - repStrLen)] = str[j];
					for (j = 0; j < repStrLen; j++)
						str[i + j] = repStr[j];
				}
				flag2 = 1;
			}
		}
	if (flag2 == 1)
		for (i = 0; i < strLen - subStrLen + repStrLen; i++)
			cout << str[i];
	else
		for (i = 0; i < strLen; i++)
			cout << str[i];
	return 0;
}


main()
{
      int i,j,k,countb,re;
      char a[256];
      char b[20];
      char c[20];
      scanf("%s",a);
      scanf("%s",b);
      scanf("%s",c);
      for(i=0;b[i]!=0;i++)
      {countb=i;}
      for(i=0;a[i]!='\0';i++)
      {
             re=0;
             if(a[i]==b[0])
             {
                    for(j=i;b[j-i]!='\0';j++)
                    {if(a[j]!=b[j-i]) break;}
                    if(j==i+countb+1)
                    {
                       re=1;
                       for(j=i;j<=i+countb;j++)
                       a[j]=c[j-i];
                    }
             }
             else continue;
             if(re==1)
             break;
      }
      printf("%s",a);
      getchar();
      getchar();
}


int main()
{
    char a[101];
    char b[101];
    char c[101];
    int i,j;
    int length1,length2,length3;
    int p;
    scanf("%s%s%s",a,b,c);
    length1=strlen(a);
    length2=strlen(b);
    length3=strlen(c);
    for(i=0;i<length1;i++)
    {
        if(a[i]==b[0])
        {
            p=0;
            for(j=1;j<length2;j++)
            {
                if(a[i+j]!=b[j])
                {
                    p=1;
                    break;
                }
            }
            if(p==0)
            {
                for(j=0;j<i;j++)
                {
                    printf("%c",a[j]);
                }
                for(j=0;j<length3;j++)
                {
                    printf("%c",c[j]);
                }
                for(j=i+length3;j<length1;j++)
                {
                    printf("%c",a[j]);

                }
            p=2;
            break;
            }
        }
    }
    if(p!=2)
    {
        for(i=0;i<length1;i++)
        {
            printf("%c",a[i]);
        }
    }
    return 0;
}


int main()
{
	char string[256],substring[256],replacement[256];
	char *str,*sub;
	int a,n=0,b;
	scanf("%s%s%s",string,substring,replacement);
	sub=substring;
	a=strlen(substring);

	for(str=string;*str!='\0';str++)
	{
		if(*sub==*str)
		{
			if(*(sub+1)!='\0')
			{
				sub++;
			}
			else
			{
				str=str-a+1;
				n=1;
				break;
			}
		}
		else
		{
			sub=substring;
		}
	}

	if(n==0)
	{
		printf("%s",string);
		return 0;
	}

	sub=replacement;
	for(b=0;b<strlen(substring);b++)
	{
		*str=*sub;
		sub++;
		str++;
	}
	printf("%s",string);
	return 0;
}


// 13.2.cpp
//

int main()
{
	char str1[258], str2[258], str3[258], ch[600];
	int len1, len2, len3, i = 0, j = 0;
	int m, n = 0;
	cin >> str1;
	cin >> str2;
	cin >> str3;
	len1 = strlen(str1);
	len2 = strlen(str2);
	len3 = strlen(str3);
	for (i = 0; i < len1; i++)
	{
		n = 0;
		m = i;
		if (str1[m] == str2[j])
		{
			n = 1;
			for (j = 0, m; j < len2; j++, m++)
			{
				if (str1[m] != str2[j])
				{
					n = 0;
					j = 0;
					break;
				}
			}
			if (n == 1)
			{
				m = i;
				for (i = 0; i < len1 + len3 - len2; i++)
				{
					if (i >= m && i < m + len3)
						ch[i] = str3[i - m];
					else
						if (i < m)
							ch[i] = str1[i];
						else
							ch[i] = str1[len2 + i - len3];
				}
				break;
			}
		}
	}
	if (n == 1)
		for (i = 0; i < len1 + len3 - len2; i++)
			cout << ch[i];
	else
		for (i = 0; i < len1; i++)
			cout << str1[i];
	return 0;
}