int main()
{
	char word[2][256],chan[256];
	int i,j,len[2],result=1,wzy=0,weizhi;

	scanf("%s%s%s",word[1],word[0],chan);
	len[0]=strlen(word[0]);
	len[1]=strlen(word[1]);

	for(i=0;i<=len[1]-len[0];i++)
	{
		if(word[1][i]==word[0][0])
		{
			for(j=i+1;j<i+len[0];j++)
			{
				if(word[1][j]!=word[0][j-i])
				{
					result=0;
					break;
				}
			}
			if(result)
			{
				weizhi=i;
				wzy=1;
			}
			result=1;
		}
		if(wzy==1)
		{
			break;
		}
	}

	if(wzy==1)
	{
		for(i=weizhi;i<weizhi+len[0];i++)
		{
			word[1][i]=chan[i-weizhi];
		}
	}

	for(i=0;i<len[1];i++)
	{
		printf("%c",word[1][i]);
	}

	return 0;
}


int main()
{
	char a[300],b[300],c[300];
	int i=0,j=0,len1,len2,len3,t=0,k;
	gets(a);
	gets(b);
	gets(c);
	len1=strlen(a);
	len2=strlen(b);
	len3=strlen(c);
		while(i<len1 && t<len2)
	{
		if(a[i]!=b[j])
		{
			i++;
			j=0;
			t=0;
		}
		else
		{
			i++;
			j++;
			t++;
		}
	}
		if(t>=len2)
		{
		for(j=0;j<i-t;j++)
	        printf("%c",a[j]);
		for(j=0;j<len3;j++)
			printf("%c",c[j]);
		for(j=i-t+len2;j<len1;j++)
			printf("%c",a[j]);
		}
		if(t<len2)
		{
			for(j=0;j<len1;j++)
				printf("%c",a[j]);
		}
	return 0;
}


int main()
{
	char a[N],b[N],c[N];
	gets(a);
	gets(b);
	gets(c);
	int i=0,x=0;
	while(i<strlen(a))
	{
		if(a[i]==b[0])
		{
			int j;
			for(j=0;j<strlen(b);j++)
			{
				if(a[i+j]!=b[j])
				{
					break;
				}
			}
			if(j==strlen(b)&&x==0)
			{
				printf("%s",c);
                x=1;
				i+=strlen(b);
			}
			else
			{
				printf("%c",a[i]);
				i++;
			}
		}
		else
		{
			printf("%c",a[i]);
			i++;
		}
	}
	return 0;
}


main()
{
	char a[257],b[257],c[257],d[257],*p;
	scanf("%s%s%s",a,b,c);
	p=strstr(a,b);
	if(p==NULL)
		puts(a);
	else{
	*p='\0';
	strcpy(d,a);
	strcat(d,c);
	strcat(d,p+strlen(b));
	puts(d);}
}


char * strpos(char string[], char substring[])
{
	char *p = string;
	char *temp = NULL;
	while(*p != '\0')
	{
		if (*p == substring[0])
		{
			temp = p;
			p++;
			int i;
			for (i = 1; i < strlen(substring); i++)
			{
				if (*p != substring[i])
				{
					break;
				}
				p++;
			}
			if (i == strlen(substring))
				break;
			else
				p = temp + 1;
		}
		else
			p++;
	}
	return temp;
}
int main()
{
	char string[256], substring[256], replacement[256];
	cin.getline(string, 257);
	cin.getline(substring, 257);
	cin.getline(replacement, 257);
	char *p = strpos(string, substring);
	if (p != NULL)
	{
		int t = 0, count = 0;
		while (count != strlen(substring))
		{
			*p = replacement[t++];
			p++;
			count++;
		}
	}
	cout << string << endl;
	return 0;
}


int main()
{
    char s[101], a[101], b[101],copy[101],before[101],after[101];
    gets(s);
	gets(a);
	gets(b);

    int i=0,j;
    for(i;i<=(int)(strlen(s)-strlen(a));i++)
    {
            for(j=0;j<(int)(strlen(a));j++)
            {
                    copy[j]=s[i+j];
            }
            copy[j]='\0';
            if (strcmp(copy,a)==0)
			{
				for(j=0;j<i;j++)
				{
                    before[j]=s[j];
				}
				before[j]='\0';
				for(j=i+(int)strlen(a);j<(int)(strlen(s));j++)
				{
                    after[j-i-(int)strlen(a)]=s[j];
				}
				after[j-i-(int)strlen(a)]='\0';
				strcat(before,b);
				strcat(before,after);
				strcpy(s,before);
				break;
			}
	}
    puts(s);
	return 0;
}


int main()
{
	char s[256];
	char a[256];
	char t[256];
	char c;
	int i,ls,j,la,lt,g,word=0;
	scanf("%s",s);
	scanf("%s",a);
	scanf("%s",t);
	ls=strlen(s);
	la=strlen(a);
	lt=strlen(t);

	for(i=0;i<ls;i++){
		if(word==0){
			g=0;
			if(s[i]==a[0]){
				g++;
				for(j=i+1;j<i+la;j++){
					if(s[j]==a[g]){
						g++;
					}
				}
				if(g==la){
					word=1;
					for(j=i;j<i+la;j++){
						s[j]=t[j-i];
					}
				}
			}
		}
	}

	printf("%s",s);
	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){
			c=1;
			break;
		}
		m=i+1;
	}
	for(i=0;i<a;i++){

			if(i>=m&&i<b+m&&c==1){
				printf("%c",replacement[i-m]);
			}
			else {
				printf("%c",string[i]);
			}
	}
	return 0;
}


void main()
{
	char s1[256],s2[256],s3[256];
	int n,i,j,length1,length2,k,h;
	k=0;
	scanf("%s",s2);
	scanf("%s",s1);
	scanf("%s",s3);
	length1=strlen(s1);
	length2=strlen(s2);
	for(i=0;i<length2;i++)
	{
		if(s1[0]==s2[i])
		{
			j=0;
			while(s2[j+i]==s1[j]&&j<length1)j++;
			if(j==length1)k=i;
		}
		if(k)break;
	}
	h=k;
         if(k)
	{for(h=k;h<k+length1;h++)
         s2[h]=s3[h-k];}
	printf("%s",s2);

}


/*************************************************************************************************************
* @file .cpp
* @author ????
* @date
* @description
*
*/

char word[256],substring[256], replacement[256];
int l1, l2, l3;
int the_same(char* ch)
{
	int i;
	for(i = 0; i < l2; i++)
	{
		if(*(ch + i) != substring[i])
			return 0;
	}
	return 1;
}
int main()
{
	char *p = NULL, *q = NULL;
	int i, t;
	cin.getline(word, 256);
	l1 = strlen(word);
	cin.getline(substring, 256);
	l2 = strlen(substring);
	cin.getline(replacement, 256);
	l3 = strlen(replacement);
	for(i = 0; i < l1; i++)
	{
		t = the_same(&word[i]);
		if(t == 1)
		{
			p = word + i;
			break;
		}
	}
	if(p == NULL)
	{
		for(i = 0; i < l1; i++)
			cout << word[i];
	}
	else
	{
		for(q = word; q < p; q ++)
			cout << *q;
		for(i = 0;i < l3; i++)
			cout << replacement[i];
		for(q = p + l2; q < word + l1;q++)
			cout<< *q;
	}
	return 0;
}


char s1[10000],s2[10000],s[10000];
int Len(char *s)
{
	int i;
	for(i=0;s[i];i++);
	return i;
}
int Match(char *s1,char *s2)
{
	int i,l=Len(s2);
	for(i=0;i<l;i++)
		if (s1[i]!=s2[i])
			return 0;
	return 1;
}
int Find(char *s,char *s1)
{
	int i,l=Len(s);
	for(i=0;i<l;i++)
		if (Match(s+i,s1))
			return i;
	return l;
}
int main()
{
	int l,i,t;
	scanf("%s%s%s",s,s1,s2);
	l=Len(s);
	t=Find(s,s1);
	if (t==l)
		printf("%s\n",s);
	else
	{
		for(i=0;i<t;i++)
			printf("%1c",s[i]);
		printf("%s",s2);
		for(i=Len(s1)+t;i<l;i++)
			printf("%1c",s[i]);
		printf("\n");
	}
	return 0;}


int main()
{
    char s[300],b[50],r[50],a[50];
    int i,k,n1,n2,n3,n,result;
    scanf("%s%s%s",s,b,r);
    n1=strlen(s);
    n2=strlen(b);
    n3=strlen(r);
    for(i=0;i<n1-n2+1;i++){
        for(k=0;k<n2;k++){
           a[k]=s[i+k];
        }a[n2]='\0';
        result=strcmp(a,b);
        if(result==0){
           n=i;
           break;
        }else continue;
     }
     for(i=0;i<n1;i++){
         if(i==n){
           printf("%s",r);
		   i=i+n2-1;
         }else{
           printf("%c",s[i]);
         }
      }
      return 0;
}


void main()
{
	char str[260],sbstr[260],rplyc[260],*p1,*p2,*p3;
	int i,j,a,b,m;
	gets(str);
	gets(sbstr);
	gets(rplyc);
	a=strlen(str);
	b=strlen(sbstr);

	for(i=0;i<a-b+1;i++)
	{
		m=0;
		p1=str+i;
		p2=sbstr;
		for(j=0;j<b;j++)
		{
			if(*(p1+j)==*(p2+j))
				m++;
		}

		if(m==b)
		{
            p1=str+i;
	    	p3=rplyc;
	    	for(j=0;j<b;j++)
				*(p1+j)=*(p3+j);
			break;
		}
	}
	puts(str);
}


int main(){
  int le,len,lenn,i,j,k,a=0,b,m=0;
  char aa[256],bb[256],cc[256];
  scanf("%s%s%s",aa,bb,cc);
  le=strlen(aa);
  len=strlen(bb);
  lenn=strlen(cc);
  for(i=0;i<le;i++)
  {      a=0;
       for(j=i,k=0;j<len+i&&k<len;j++,k++)
	   {
	   if(bb[k]==aa[j])
             a++;
	   }
	   if(a==len){b=i;m++;break;}
 }

     if(m==0) puts(aa);
     else{
      for(i=0;i<b;i++){printf("%c",aa[i]);}
      for(k=0;k<lenn;k++){printf("%c",cc[k]);}
      for(i=b+len;i<le;i++){printf("%c",aa[i]);}
          }
return 0;}


int main()
{
	char s[256],a[101],b[101];
	int i,len,k,j,len1,len2,l,n,p=0;
	gets(s);
	gets(a);
	gets(b);

	len=strlen(s);
	len1=strlen(a);
	len2=strlen(b);
	for(i=0;s[i]!=0;i++)
	{
		if(s[i]==a[0]&&p==0)
		{
			k=0;
			while(s[i+k]==a[k]&&k<len1)
			{
				k++;

			}
			if(k==len1)
			{
				p=1;

				len=strlen(s);
				len1=strlen(a);
				len2=strlen(b);
				if(len1==len2)
				{
					for(j=0;j<k;j++)
					{
						s[i+j]=b[j];
					}
				}
				if(len1>len2)
				{
					for(j=0;j<len1;j++)
					{
							s[i+j]=b[j];
					}
					for(j=len2,l=k;(l+i)<=len;j++,l++)
					{
						s[i+j]=s[i+l];
					}
				}
				if(len1<len2)
				{
					len=strlen(s);
					n=len2-len1;
					for(l=len;l>=(i+k);l--)  s[l+n]=s[l];
					for(j=0;j<len2;j++)   s[i+j]=b[j];

				}
			}
		}
	}
	puts(s);
	return 0;

}


main()
{
      char a[300];
      char b[100],c[100];
      gets(a);
      gets(b);
      gets(c);
      int x1,x2,x3,i,j,k;
      x1=strlen(a);
      x2=strlen(b);
      x3=strlen(c);
      /*puts(a);
      puts(b);
      puts(c);*/
      for(i=0;i<=x1-x2;i++)
      {
          for(j=0;j<=x2-1;j++)
          {
              if(b[j]!=a[i+j])
              {
                  break;
              }
          }
          //printf("%d\n",j);
          if(j==x2)
          {
              for(k=0;k<=x2-1;k++)
              {
                  a[i+k]=c[k];
              }
              break;
          }
      }
      puts(a);
      getchar();getchar();getchar();getchar();getchar();getchar();getchar();getchar();
}


void main()
{
	char string[256],sub[256],replace[256],s[256],p[256];
	int i,j,k,a,k0,k1,k2,flag = 0;

	scanf("%s",string);
	scanf("%s",sub);
	scanf("%s",replace);
	k0 = strlen(string);
	k1 = strlen(sub);
	k2 = strlen(replace);
    for(i = 0;i < k0;i ++)
	{
	   for(j = i,k = 0;j < i + k1;j ++,k ++)
	   {
		   p[k] = string[j];
	   }
	   p[k] = 0;

	   if(strcmp(sub,p) == 0)
	   {
		   a = i;
		   for(i = 0;i < a;i ++)
		   {
			s[i] = string[i];
		   }
	       for(i = k0+k2-k1,j = k0;i >= a + k2,j >= a + k1;i --,j --)
		   {
            s[i] = string[j];
		   }
           for(i = a,j = 0;i < a + k2,j < k2;i ++,j ++)
		   {
		    s[i] = replace[j];
		   }
		   flag = 1;break;
	   }
	   }
	  if(flag == 1)
	  {
		  for(i = 0;i < k0 + k2 - k1;i ++)
	   {
	      printf("%c",s[i]);
	   }
	      printf("\n");
	  }
	  if(flag == 0)
		  puts(string);

}


int main() {
	char str[600], subStr[260], rep[260];
	memset(str, 0, sizeof(str));
	scanf("%s%s%s", str, subStr, rep);
	char* pos  = strstr(str, subStr);
	if(pos != NULL) {
		int len = strlen(rep);
		for(int i = 0; i < len; i++) {
			*pos++ = rep[i];
		}
	}
	printf("%s", str);
}


int main()
{
   char str[256],a[256],b[256],tmp[256];
   int i,lenstr,lena;
   char *pstr;
   gets(str);
   gets(a);
   gets(b);
   lenstr=strlen(str);
   lena=strlen(a);

   for(i=0;i<=lenstr-lena;i++)
   {
      pstr=&str[i];
      strncpy(tmp,pstr,lena);
      tmp[lena]='\0';

      if(strcmp(tmp,a)==0)
      {
         str[i]='@';
         break;
      }
   }

   for(i=0;i<lenstr;i++)
   {
      if(str[i]=='@')
      {
        printf("%s",b);
        i=i+lena-1;
      }
      else printf("%c",str[i]);
   }
   printf("\n");

  return 0;
}


int main()
{
	int len,len2,i,j,f,ff;
	char s[300],sub[300],replace[300];
	gets(s);
	len=strlen(s);
	gets(sub);
	gets(replace);
	len2=strlen(sub);
	f=0;
	for (i=0; i<=len-len2;i++) {
		ff=1;
		for (j=0; j<len2; j++)
			if (sub[j]!=s[i+j]) {ff=0; break;}
		if (ff==0) continue;
		for (j=0; j<i; j++) printf("%c",s[j]);
		printf("%s",replace);
		for (j=i+len2; j<len; j++) printf("%c",s[j]);
		f=1;
		break;
	}
	if (f==0) printf("%s",s);
	return 0;
}


int cmp(int x,int y)
{
	if (x>y)
		return 1;
	else
		return 0;
}
int main()
{
	char str1[260],str2[260],str3[260];
	cin>>str1>>str2>>str3;
	int L=strlen(str2),len=strlen(str1),k,i;
	for (i=0;i<len;i++)
	{
		k=0;
		while(str2[k]==str1[i+k]&&k<L)
		{
			k++;
		}
		if(k==L)
		{
			break;
		}
	}
	if(i==len)
	{
		for(int q=0;q<len;q++)
		{
			cout<<str1[q];
		}
		return 0;
	}
	for(int q=0;q<i;q++)
	{
		cout<<str1[q];
	}
	cout<<str3;
	for(int q=i+strlen(str2);q<len;q++)
	{
		cout<<str1[q];
	}
	return 0;
}


int main()
{
     int a,b,i,j,count=0,k;
     char string[256],substring[256],replacement[256],czy[256],cai[256];
     gets(string);
     gets(substring);
     gets(replacement);
     a=strlen(string);
     b=strlen(substring);
     for(i=0;i<a;i++)
     {
          if(string[i]==substring[0])
          {
                                      for(j=0;j<b;j++)
                                      czy[j]=string[i+j];
                                      if(strcmp(czy,substring)==0)
                                      {
                                                                  count=1;
                                                                  for(k=0;k<i;k++)
                                                                  cai[k]=string[k];
                                                                  for(k=i;k<i+b;k++)
                                                                  cai[k]=replacement[k-i];
                                                                  for(k=i+b;k<a;k++)
                                                                  cai[k]=string[k];
                                      }
                                      if(count==1)
                                      break;
          }
     }
     if(count==1)
     puts(cai);
     else
     puts(string);
}


/*******************************
/* ?  ?: ????
/* ?  ?: ??? 1200012861
/* ?  ?: 2012?12?24?
*******************************/

int main()
{
	char str[260], subStr[260], replace[260];
	char *start = str, *node = NULL, *rep = replace;
	int len;
	cin >> str >> subStr >> replace;
	node = strstr(str, subStr);
	if (node == NULL)
		while (*start != '\0')
			cout << *start++;
	else
	{
		len = strlen(subStr);
		while (start != node)
			cout << *start++;
		while (*rep != '\0')
			cout << *rep++;
		node += len;
		while (*node != '\0')
			cout << *node++;
	}
	cout << endl;
	start = NULL;
	node = NULL;
	rep = NULL;
	return 0;
}


int main()
{
    char zfc[257],son[257],re[357],fu[257];
    int i,len,slen,k,t=0;
    gets(zfc);
    gets(son);
    gets(re);
    len=strlen(zfc);
    slen=strlen(son);
    for(i=0;i<=len-slen;i++)
    {
        for(k=i;k<i+slen;k++)
        {
             fu[k-i]=zfc[k];
        }
        fu[slen]='\0';
        if(strcmp(fu,son)==0)
        {
             for(k=0;k<i;k++)
             {
                printf("%c",zfc[k]);
             }
             printf("%s",re);
             for(k=i+slen;k<len;k++)
             {
                 printf("%c",zfc[k]);
             }
             t=1;
        }
        if(t==1)
        {
             break;
        }
    }
    if(t==0)
    {
            printf("%s",zfc);
    }
    return 0;
}


int main()
{
	int i,j,length2,length1;
	char str[300],sub[300],rep[300];
	gets(str);gets(sub);gets(rep);
	length1=strlen(str);
	length2=strlen(sub);
	for(i=0;i<length1;i++)
	{
		for(j=0;j<length2;j++)
		{
			if(sub[j]!=str[i+j])
			break;
		}
		if(j==length2)
		{
			for(j=0;j<length2;j++)
				str[i+j]=rep[j];
			break;
		}
	}
	puts(str);
	return 0;
}


int main()
{
    char zfc[256],z1[256],z2[256];
    int i,j,k,n,p,count,count1,count2,count4,count3[50];
    int num1,num2,d=0;
    gets(zfc);
	gets(z1);
	gets(z2);
    count=0;
	num1=strlen(zfc);
	num2=strlen(z1);
    for(i=0;i<num1;i++)
	{
		count1=0;
		for(j=0;j<num2;j++)
		{
			if(zfc[i+j]==z1[j])count1++;
		}
		if(count1==num2)
			break;
	}
	if(count1==num2)
	{
		for(j=i;j<num2+i;j++)
		{
			zfc[j]=z2[j-i];
		}
	}
  	printf("%s",zfc);
	return 0;
}


int main(){
    char mc[1000],zc[1000],huan[1000];
    int len1,len2,len3,i,j=0;
    int sum=0,ci=0,loc;
    scanf("%s%s%s",mc,zc,huan);
    len1=strlen(mc);
    len2=strlen(zc);
    len3=strlen(huan);
    for(i=0;i<len1;i++)
    {
        if(mc[i]==zc[0]){
                         sum=0;
                         for(j=i;j<len1;j++) {
                                       if(mc[j]==zc[j-i]){
                                                          sum++;
                                                          }
                                       else{
                                            break;
                                            }
                                       }
                         loc=i;
                                                if(sum==len2){
                                       for(i=0;i<loc;i++){
                                                        printf("%c",mc[i]);
                                                        }
                                       for(i=loc;i<=loc+len3-1;i++){
                                                              printf("%c",huan[i-loc]);
                                                              }
                                       for(i=loc+len3;i<=len1+len3-len2-1;i++){
                                                                             printf("%c",mc[i]);
                                                                             }
                                       ci++;
                                       break;

                                       }

                         }

    }

     if(ci==0)
     {
         printf("%s",mc);
         }
          return 0;
     }


char str[256], sub[256];
int f(int x)
{
	int i = x, j = 0;
	while (sub[j] != '\0')
	{
		if (str[i] != sub[j])
			return 0;
		i++; j++;
	}
	return 1;
}
int main()
{
	char rep[256];
	int i = 0, j = 0;
	cin >> str;
	cin >> sub;
	cin >> rep;
	while (str[i] != '\0')
	{
		if (f(i))
		{
			while (rep[j] != '\0')
			{
				str[i] = rep[j];
				i++;
				j++;
			}
			break;
		}
		i++;
	}
	cout << str << endl;
	return 0;
}


int main()
{
char str[256]={' '},sstr[256]={' '},rpl[256]={' '};
int lstr,lsstr;
	scanf("%s%s%s",str,sstr,rpl);
	lstr=strlen(str);lsstr=strlen(sstr);
	int pst,curr,indi=0;
	for(pst=0;pst<=lstr-lsstr;pst++){
		int state=1;
		for(curr=0;curr<lsstr;curr++){
			if(sstr[curr]!=str[curr+pst]){
				state=0;
				break;
			}
		}
		if(state==1){
			indi=1;
			break;
		}
	}
	if(indi==0)printf("%s",str);
	else{
		for(curr=0;curr<pst;curr++){
			printf("%c",str[curr]);
		}
		for(curr=0;curr<lsstr;curr++){
			printf("%c",rpl[curr]);
		}
		for(curr=pst+lsstr;curr<lstr;curr++){
			printf("%c",str[curr]);
		}
	}
	return 0;
}


int main()
{
	char a[260], b[260], c[260];
	int i, t, j, s, len, len1;
	cin >> a >> b >> c;
	len1 = strlen(a);
	len = strlen(b);
	for (i = 0; i <= len1 - len; i++)
	{
		t = 1;
		for (j = 0; j < len; j++)
			if (a[i + j] != b[j])
				t = 0;
		if (t == 1)
		{
			s = i;
			break;
		}
	}
	if (t == 1)
	{
		for (i = 0; i < s; i++)
			cout << a[i];
		cout << c;
		for (i = s + len; i < len1; i++)
			cout << a[i];
	}
	else
		cout << a;
	cout << endl;

	return 0;
}


int main()
{
	char sz[100];
	scanf ("%s",sz);
	int i,j,m,n,len,len1,len2;

	char as[100],az[100];
	scanf ("%s%s",as,az);

	len=strlen(sz);
	len1=strlen(as);
	len2=strlen(as);
	for (i=0;i<len;i++){
		for (j=0;j<len2;j++,i++){
			if (sz[i]!=as[j]) break;
			if (j==len2-1) {
				for (m=i-len2+1,n=0;n<len2;n++,m++){
					sz[m]=az[n];
				}
			}
			if (j==len2-1){
				i=len;
			}
		}
	}
	printf("%s",sz);
	return 0;
}


void main()
{
	char a[100],b[100],c[100],temp[100];
	int i,j=0,k,lena,lenb,mark=0;
    scanf("%s",a);
    scanf("%s",b);
    scanf("%s",c);
	lena=strlen(a);
	lenb=strlen(b);

	for(i=0;i<lena;i++)
	{
		if(a[i]==b[0])
		{
			for(j=1;j<lenb;j++)
			{
				if(a[i+j]==b[j]) mark=1;
				else
				{
					mark=0;
					break;
				}
			}
		}
		if(mark==1)
		{
			for(k=0;k<lenb;k++)
				a[i+k]=c[k];
			break;
		}
	}
	for(i=0;i<lena;i++)
	{
		printf("%c",a[i]);

	}
}


int main()
{
	char s[300],a[300],b[300];
	int x=0;
	gets(s);
	gets(a);
	gets(b);
	int sl=strlen(s);
	int al=strlen(a);
	int bl=strlen(b);
	for(int i=0;i<sl;i++)
	{
		if((a[0]==s[i]&&a[al-2]==s[i+al-2])&&x==0)
		{
            for(int w=0;w<bl;w++)
			{
				printf("%c",b[w]);
			}
            i+=al-1;
			x=1;

		}

        else
		{

				printf("%c",s[i]);

		}
	}
		return 0;
}


int main()
{
	char s1[300] , s2[300] , s3[300];
	scanf ( "%s%s%s" , s1 , s2 , s3 );
	char *p = strstr ( s1 , s2 );
	if ( p )
	{
		char temp = *(p + strlen(s2));
		strcpy ( p , s3 );
		*(p+strlen(s2)) = temp;
	}
	printf ( "%s\n" , s1 );
	return 0;
}


int main(){
	char a[256],b[256],c[256];
	int i,j,panduan,k;
	k=0;
	panduan=0;
	gets(a);
	gets(b);
	gets(c);
	for(i=0;a[i]!='\0';i++){
		panduan=0;

			for(j=0;b[j]!=0;j++){
				if(a[i+j]!=b[j]){
					panduan=1;
					break;
				}
			}
		if(panduan==0&&k==0){
			printf("%s",c);
			i+=j-1;
			k=1;
		}
		else
			printf("%c",a[i]);

	}
	return 0;

}


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


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


int main()
{
 char str[256],sub[256],rep[256],temp[256];
 char* p;
 gets(str);
 gets(sub);
 gets(rep);
 p = strstr(str,sub);
 if(p!=NULL){
  *p = 0;
  strcpy(temp, str);
  strcat(temp, rep);
  strcat(temp, p+strlen(sub));
  strcpy(str, temp);
 }
 printf("%s\n", str);
 return 0;
}


int main()
{
	char s1[500],s2[20],s3[20];
	int i,j,len1,len2,len3,count,c=0;

	gets(s1);
	gets(s2);
	gets(s3);
	len1=strlen(s1);
	len2=strlen(s2);
	len3=strlen(s3);

	for (i=0;i<len1;i++)
	{
		count=0;
		if (s1[i]==s2[0])
			for (j=0;j<len2;j++)
				if (s1[i+j]==s2[j])
					count++;
		if (count==len2)
			break;
	}
	for (j=0;j<i;j++)
		printf("%c",s1[j]);
if (i!=len1)
	printf("%s",s3);
	for (j=i+len2;j<len1;j++)
		printf("%c",s1[j]);
	return 0;
}


int main(int argc, char* argv[])
{
	char string[256],subString[256],replacement[256],buffer[256]={0},result[256]={0};
	scanf("%s\n%s\n%s",string,subString,replacement);
	int mainlen=strlen(string),sublen=strlen(subString);
	int i;
	for(i=0;i<=mainlen-sublen;i++)
	{
		strncpy(buffer,(string+i),sublen);
		if(!strcmp(buffer,subString))
		{
			strncpy(result,string,i);
			strcat(result,replacement);
			strcat(result,(string+i+sublen));
			printf("%s",result);
	        return 0;
		}
	}
		printf("%s",string);
		return 0;
}


int main()
{
	char string[500],substring[50],replacement[50];
	int same,i,k,c;
	scanf("%s%s%s",string,substring,replacement);
	for (i=0;i<strlen(string);i++)
	{
		same=1;
		for (k=0;k<strlen(substring);k++)
		{
			if (string[i+k]!=substring[k])
			{
				same=0;
			}
		}
		if(same==1)
		{
			printf("%s",replacement);
			c=i;
			break;
		}
		else
		{
			printf("%c",string[i]);
		}

	}
	for(i=c+strlen(substring);i<strlen(string);i++)
	{
		printf("%c",string[i]);
	}
	return 0;
}


int main(){
    char str[100],sub[100],re[100];
    gets(str);
    gets(sub);
    gets(re);
    int bar=0,min=0;
    int len1=strlen(str),len2=strlen(sub);
    for(int i=0;i<len1;){
            bar=0;
            if(str[i]==sub[0]){
                     for(int j=0;j<len2;j++){
                             if(str[i+j]!=sub[j]){
                                       bar=1;
                             }
                     }
                     if(bar==0&&min==0){
                             printf("%s",re);
                             i=i+len2;
                             min=1;
                     }
                     else{
                             printf("%c",str[i]);
                             i=i+1;
                             bar=0;
                     }
            }
            else{
                 printf("%c",str[i]);
                 i=i+1;
            }
    }
    return 0;
}


int main()
{  int same,i,j,k;
    char str[256],sub[256],repl[256];
   scanf("%s%s%s",str,sub,repl);
   for(i=0;i<strlen(str);i++)
   { same=1;
     for(j=0;j<strlen(sub);j++)
     {if(str[i+j]!=sub[j])
      same=0;
     }
     if(same==0)
     printf("%c",str[i]);
     if(same==1)
     { printf("%s",repl);
       for(k=i+strlen(sub);str[k]!=0;k++)
       {printf("%c",str[k]);}
       break;
     }
   }
return 0;
}


int main()
{
	char str[1000],sub[1000],rep[1000];
	int len1,len2,len3,i,j,k;
	gets(str);
	gets(sub);
	gets(rep);
	len1=strlen(str);
	len2=strlen(sub);
	len3=strlen(rep);
 for(j=0;j<len2;j++)

 for(i=0;i<len1;i++)
 {if(str[i]!=sub[0])continue;

	 if(str[i]==sub[0]&&str[i+1]==sub[1]&&str[i+2]==sub[2]&&str[i+3]==sub[3])break;
 }
			if(i<len1)
             for(k=i;k<i+len2;k++)
					  str[k]=rep[k-i];

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


int main()
{
	char words[200],a[100],b[100];
	int n,k,j=0,i,s,d;
	gets(words);
	gets(a);
	gets(b);
	n=strlen(words);
	s=strlen(a);
    d=strlen(b);
	for(i=0; i < n ; i++)
	{
		if(strncmp(words + i, a, s) == 0)
		{
			for(j=i,k=0;k<d;j++,k++){
			    words[j]=b[k];
			}
			break;
		}
	}
	puts(words);
	return 0;
}


int main()
{
	char a[256],b[256],c[256];
	scanf("%s%s%s",b,a,c);
	int alen,blen,clen,i,j;
	alen=strlen(a);blen=strlen(b);clen=strlen(c);
	int n=0;
	for(i=0;i<blen;i++)
	{
		if(b[i]==a[0])
		{
			n=1;
			for(j=0;j<alen;j++)
				if(a[j]!=b[i+j]) {n=2;break;}
		}
		if(n==1) break;
	}
	int t=i;
	if(n==1)
	{
	for(i=0;i<t;i++) printf("%c",b[i]);
	printf("%s",c);
	for(i=t+clen;i<blen;i++) printf("%c",b[i]);
	}
	else printf("%s",b);
	return 0;
}


int main()
{
	char a[257],b[257],c[257];
	int i,k=0,j,len1,len2,len3;
	scanf("%s%s%s",a,b,c);
	len1=strlen(a);
		len2=strlen(b);
len3=strlen(c);
	for(i=0;i<len1;i++)
	{
		for(j=0;j<len2;j++)
		{
			if(a[i+j]==b[j])
				k++;

		}
		if(k==len2)
				break;
k=0;
	}
if(k==len2)
{
	for(j=0;j<i;j++)
{
	printf("%c",a[j]);
}
for(j=0;j<len3;j++)
{
	printf("%c",c[j]);
}
for(j=i+len2;j<len1;j++)
{
	printf("%c",a[j]);
}
}
if(k!=len2)
{
	printf("%s",a);
}
return 0;
}


main()
{
 char string[257],sub[257],re[257];
 char out[257]={'\0'};
 scanf("%s",string);
 scanf("%s",sub);
 scanf("%s",re);
 int i,k=0,len,m=0;
 len=strlen(sub);
 int len2=strlen(re);
 int len3=strlen(string);
 for(i=0;i<256;i++)
 {
  if(string[i]==sub[k])
  {
   k+=1;
   if(k==len) break;
                       }
   else
   {
    k=0;
       }
                   }
                   if(k==len)
                   {
                    int s=len3-len+len2;
                    for(int j=0;j<s;j++)
                    {
                     if(j<=i-k) {out[j]=string[j];continue;}
                     if(j>i-k&&j<=i-k+len2) {out[j]=re[m];m+=1;}
                     else {out[j]=string[i+1];i++;}
                            }
                     printf("%s",out);
                             }
                    else
                    printf("%s",string);

      }


void main()
{
	char s[300],d[300],r[300];
	int i=0,j,k,ls,lr,ld;
	int flag=0;
	int cont=0;
	gets(s);
	gets(d);
	gets(r);
	ls=strlen(s);
	ld=strlen(d);
	lr=strlen(r);
	for(i=0;i<ls;)
	{
		flag=0;
		for(j=0;j<ld;j++)
		{
			if(s[i+j]==d[j])
				flag++;
			if(flag==ld)
				cont++;
		}

		if(flag==ld&&cont==1)
		{
			cont++;
			for(k=0;k<lr;k++)
			{
				s[i+k]=r[k];
			}
			i=i+lr;
			continue;
		}
		else
		{
			i++;
			continue;
		}

	}
	puts(s);
}


int main(){
    char yuan[256],jiu[256],xin[256];
	int i,j,len,n=0,len1,u[256],jishu[256]={0},len2,k,weizhi,sum=0;
     scanf("%s",yuan);
     scanf("%s",jiu);
	 scanf("%s",xin);
	 len1=strlen(yuan);
	 len2=strlen(jiu);
	  for(i=0;i<len1;i++){
		 if(yuan[i]==jiu[0]){
			 u[n]=i;
			 n++;
		 }
	 }
	  for(i=0;i<n;i++){
		  for(j=u[i],k=0;j<u[i]+len2,k<len2;j++,k++){
			  if(yuan[j]!=jiu[k])
			{
				  jishu[i]++;
			  }
		  }
	  }
	for(i=0;i<n;i++){
				   if(jishu[i]==0){
					   sum++;
				   }
	}
				   if(sum==0){
					   printf("%s",yuan);
				   }
				   else{
	  for(i=0;i<n;i++){
				   if(jishu[i]==0){
					   weizhi=u[i];
break;
				   }
				   }

	  for(i=weizhi,k=0;i<weizhi+len2,k<len2;i++,k++){
		  yuan[i]=xin[k];
	  }
	  printf("%s",yuan);

				   }

	return 0;
}


/*************************
 ***??:??? 1200012776
 ***????:????
 ***??:2012?12?24?
 *************************/
int main()
{
	char string[260] = {0}, substring[50] = {0}, replacement[50] = {0}, temp[50] = {0},
		length, length_s, length_r, i, j, k = 0, m, n;
	cin >> string >> substring >> replacement;
	length = strlen(string);
	length_s = strlen(substring);
	length_r = strlen(replacement);
	for (i = 0; i <= length - length_s; i++)
	{
		memset(temp, 0, sizeof(temp));
		k = 0;
		for (j = i; j < i + length_s; j++)
		{
			temp[k++] = string[j];	//????
		}
		if (!strcmp(temp, substring))	//???
		{
			if (length_s != length_r)	//??????????????,??????
			{
				n = i + length_s;
				for (m = i + length_r; m < length; m++)
				{
					string[m] = string[n++];
				}
			}
			n = 0;
			for (m = i; m < i + length_r; m++)
			{
				string[m] = replacement[n++];
			}
			break;
		}
	}
	cout << string << endl;
	return 0;
}


void main(){
	void copy(char a[],char b[],char c[]);
	char S[100],sub[100],re[100];
	scanf("%s",S);
	scanf("%s",sub);
	scanf("%s",re);
	int a,b,c,i,j;
	a=strlen(S);
	b=strlen(sub);
	c=strlen(re);

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

}


int main()
{
	int i,j,a,b,c,m,d,k,v=0;
	char str[100],substr[100],rep[100];
	scanf("%s%s%s",str,substr,rep);
	a=strlen(str);
	b=strlen(substr);
	for(i=0;i<a;i++)
	{
	       k=i;
		   if(substr[0]==str[k])
		   {
			   d=0;
			   for(j=i+1,m=1;j<i+b;j++,m++)
			   {
				   if(substr[m]==str[j])
					   d++;
			   }

				   if(d==b-1)
					   for(j=i,c=0;j<i+b;j++,c++)
					   {
						   str[j]=rep[c];
						   v=1;

					   }

		   }
		   if(v==1)
			   break;
	} printf("%s",str);
	return 0;
}


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


int main()
{
	char str[256],sub[256],rep[256];

	int wz=-1;
	int len1,len2;
	int i,j,x;

	gets(str);
	gets(sub);
	gets(rep);
	len1=strlen(str);
	len2=strlen(sub);
	for(i=0;i<len1;i++){
		if(str[i]==sub[0]){
			x=1;
			wz=i;
			for(j=0;j<len2;i++,j++){
				if(sub[j]!=str[i]){
					x=0;
					i=wz;

					break;
				}
			}
			if(x!=0){
				break;
			}
		}
	}
	if(wz==-1){
		printf("%s",str);
	}
	else{
		for(i=0;i<wz;i++){
			printf("%c",str[i]);
		}
		printf("%s",rep);
		for(i+=len2;i<len1;i++){
			printf("%c",str[i]);
		}
	}
	printf("\n");
	return 0;
}


int main(int argc, char* argv[])
{
	int i,j,s,m,n,k;
	char str1[257],str2[257],str3[257];
	scanf("%s",str1);
	scanf("%s",str2);
	scanf("%s",str3);
	m=strlen(str1);
	n=strlen(str2);
	k=strlen(str3);
	for(i=0;i<=m-n;i++)
	{
		s=0;
		for(j=i;j<i+n;j++)
		{
			if(str2[j-i]==str1[j])
				s++;
		}
		if(s==n)
		{
			for(j=0;j<i;j++)
			{
				printf("%c",str1[j]);
			}
			for(j=0;j<k;j++)
			{
				printf("%c",str3[j]);
			}
			for(j=i+n;j<m;j++)
			{
				printf("%c",str1[j]);
			}
			break;
		}
	}
    if(s!=n)
		printf("%s",str1);
	return 0;
}


int main()
{
char sr[1000];
gets(sr);
char a[1000],b[1000];
scanf("%s%s",a,b);
int len,ken;
len=strlen(sr);
ken=strlen(a);
int i,j,k,m;
m=0;
// Ilovehomelive live==>jdkfjdsjfks
for(i=0;i<len;i++)
{
	if(sr[i]==a[0]){j=i;
	for(k=0;k<ken;k++)
		if(sr[k+j]==a[k]){m=1;}
		else if(sr[k+j]!=a[k]){m=0;break;}
	}
	if(m==1)  break;
}
if(m==0){printf("%s",sr);}
char c[1000],d[1000];
if(m==1)
{
	for(i=0;i<j;i++)
		{c[i]=sr[i];}
	c[j]='\0';
	if(j+ken==len)
		{printf("%s%s",c,b);}
	if(j+ken<len)
	{
		for(i=j+ken;i<len;i++)
			{d[i-j-ken]=sr[i];}
			d[len-j-ken]='\0';
			printf("%s%s%s",c,b,d);
	}
}
return 0;
}


int main(){
    char yuan[256];
    char sub[256];
    char replace[256];
    char sz[256][256];
    gets(yuan);
    gets(sub);
    gets(replace);
    int n=strlen(sub);
    int m=strlen(yuan);
    int i,k,result;
    int a=0;
    int b=0;
    for(i=0;i<=m-n;i++)
    {
                       for(k=0;k<n;k++)
                       {
                                       sz[a][b]=yuan[i+k];
                                       b++;
                                       }
                                       sz[a][b]='\0';
                                       a++;
                                       b=0;
                                       }
                                       for(i=0;i<a;i++)
                                       {
                                                       result=strcmp(sz[i],sub);
                                                       if(result==0)
                                                       {
                                                                    strcpy(sz[i],replace);
                                                                    printf("%s",sz[i]);
                                                                    i+=n;
break;
                                                                    }
                                                                    else{
                                                                    printf("%c",yuan[i]);
                                                                    }
                                                                    }
                                       for(i=i;i<m;i++)
                                       {
                                                        printf("%c",yuan[i]);
                                                        }

		return 0;
}


int main ()
{
	char zfc[2000];
	gets(zfc);
	int c;
	c=strlen(zfc);
    char tzfc[2000];
	char hzfc[2000];
	gets(tzfc);
	gets(hzfc);
	int ct,ch;
	ct=strlen(tzfc);
	ch=strlen(hzfc);

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

	  if(an==1)
	  {
	  break;
	  }
	}

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

    int xzfc[2000];
	for(i=0;i<wei;i++)
	{
	xzfc[i]=zfc[i];
	}
	for(i=wei;i<ch+wei;i++)
	{
	xzfc[i]=hzfc[i-wei];
	}
	for(i=ch+wei;i<c-ct+ch;i++)
	{
	xzfc[i]=zfc[i-(ch-ct)];
	}

	for(i=0;i<c-ct+ch;i++)
	{
	printf("%c",xzfc[i]);
	}

    }
	return 0;
}


int main()
{
	char str[300], subString[300], replacement[300];
	char *p, *q;
	int strLen, subLen, repLen, move, i;
	cin >> str >> subString >> replacement;
	strLen = strlen(str);
	subLen = strlen(subString);
	repLen = strlen(replacement);
	p = strstr(str, subString);
	if (p == NULL)
	{
		cout << str;
		return 0;
	}
	q = replacement;
	if (repLen > subLen)
	{
		move = repLen - subLen;
		for (q = str + strLen + move; q >= p + repLen; q--)
		{
			*q = *(q - move);
		}
		i = 0;
		q = replacement;
		while (i < repLen)
		{
			*p++ = *q++;
			i++;
		}
	}
	else if (repLen == subLen)
	{
		i = 0;
		while (i < repLen)
		{
			*p++ = *q++;
			i++;
		}
	}
	else
	{
		i = 0;
		while (i < repLen)
		{
			*p++ = *q++;
			i++;
		}
		move = subLen - repLen;
		while (*(p + move) != '\0')
		{
			*p++ = *(p + move);
		}
		*p = '\0';
	}
	cout << str << endl;
	return 0;
}


int main(int argc, char* argv[])
{
	char s1[300],s2[300],s3[300];
	scanf("%s %s %s",s1,s2,s3);

	int len1,len2;
	len1=strlen(s1);
	len2=strlen(s2);

	int i,j,k=0;
	int tag=0,tag1;

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

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

		}

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

	return 0;
}


void main()
{
	char *p,*q,*r;
	p=(char *)malloc(1000);q=(char *)malloc(1000);r=(char *)malloc(1000);
	gets(p);gets(q);gets(r);
	int a,b,c;
	a=strlen(p);b=strlen(q);c=strlen(r);
	int i,j,k;int t=1;
	for (i=0;i<a;i++)
	{
		for(j=i,k=0;j<i+b;j++,k++)
		{
			if (p[j]!=q[k])
			{t=0;break;}
		}
		if (k==b) break;
	}
	if(k==b)
	{
	for (j=0;j<i;j++)
		printf("%c",p[j]);
	printf("%s",r);
	for (j=i+b;j<a;j++)
		printf("%c",p[j]);
	}
	else printf("%s",p);
}


//????
int main(void)
{

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

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

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

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

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

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

	else
{

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

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

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

	printf("%s",Ans);
}
	return 0;
}


int main()
{
	char org[270] = {0}, sub[100] = {0}, rep[100] = {0}, temp[100] = {0};
	cin >> org >> sub >> rep;
	int i, j, l1 = strlen(org), l = strlen(sub), flag = 0;
	for (i = 0; i < l1; i++)
	{
		for (j = i; j < i+l; j++)
		{
			temp[j - i] = org[j];
		}
		if (strcmp(temp, sub) == 0) {
			flag = 1;
			break;
		}
	}
	if (flag){
		for (int k = 0; k < i; k++) cout << org[k];
		cout << rep;
		cout << org + j << endl;
	}
	else cout << org << endl;
	return 0;
}


int main()
{
	char string[256], subString[256], replacement[256];
	char *n = NULL;
	int l, i;
	memset(string, '\0', sizeof(string));
	memset(subString, '\0', sizeof(subString));
	memset(replacement, '\0', sizeof(replacement));
	cin >> string >> subString >> replacement;
	n = strstr(string, subString);
	l = strlen(subString);
	if (n != NULL)
	{
		for (i = 0; i < l; i++)
		{
			n[i] = replacement[i];
		}
	}
	cout << string << endl;
	return 0;
}


int main()
{
	char s[257],z[200],h[200],t[100];
	int lens,lenz,lenh,i,j,sum,r,q=0,p=0;
	gets(s);
	gets(z);
	gets(h);
	lens=strlen(s);
	lenz=strlen(z);
	lenh=strlen(h);
	for(i=0;i<lens;i++)
	{
		sum=0;
		for(j=0;j<lenz;j++)
		{
			if(s[i+j]==z[j])
			{
				sum++;
			}
			else
			break;
		}
		if(sum==lenz)
		{
			r=i;
			q=1;
			break;
		}
	}
	if(q==1)
	{
		for(i=0;i<r;i++)
			printf("%c",s[i]);
		printf("%s",h);
		for(i=r+sum;i<lens;i++)
			printf("%c",s[i]);
	}
	else if(q==0)
		printf("%s",s);
	return 0;
}


void main()
{
	char str[3][256],string[512];
	int n,m,k,i,j;
	scanf("%s %s %s",str[0],str[1],str[2]);
	n=strlen(str[0]);
	m=strlen(str[1]);
	k=strlen(str[2]);
	for(j=0;j<n-m+1;j++)
	{
	for(i=0;i<m;i++)
	{
		if(str[1][i]!=str[0][i+j])
			break;
	}
	if(i==m)
	{
		break;
	}
	}
	if(j<n-m+1)
	{
	for(i=0;i<j;i++)
		string[i]=str[0][i];
	for(i=j;i<j+k;i++)
		string[i]=str[2][i-j];
	for(i=j+k;str[0][i-k+m]!='\0';i++)
		string[i]=str[0][i-k+m];
	string[i]='\0';
	printf("%s",string);
	}
	else
		printf("%s",str[0]);
}


int main()
{char *p1,*p2,*p3,*q1,*q2;
 int i,j,k,flag;
 p1=(char*)malloc(sizeof(char)*256);
 p2=(char*)malloc(sizeof(char)*256);
 p3=(char*)malloc(sizeof(char)*256);
 q1=(char*)malloc(sizeof(char)*256);
 q2=(char*)malloc(sizeof(char)*256);
 gets(p1);gets(p2);gets(p3);
 for(i=0;i<strlen(p1);i++)
 {flag=1;
  for(j=0;j<strlen(p2);j++)
  if(*(p1+i+j)!=*(p2+j)) {flag=0;break;}
  if(flag)
  {for(k=0;k<i;k++)
   *(q1+k)=*(p1+k);
   *(q1+k)='\0';
   for(k=i+strlen(p2);k<strlen(p1);k++)
   *(q2+k-i-strlen(p2))=*(p1+k);
   *(q2+k-i-strlen(p2))='\0';
   break;}
  }
 if(flag){
 strcat(q1,p3);
 strcat(q1,q2);
 puts(q1);}
 else
 puts(p1);
}


void main()
{
    char str[600];
    char sub[300], rep[300];
    int i, j, k, sun00=0, se=0;

    gets(str);
    gets(sub);
    gets(rep);

    for (i=0; str[i]!=0; i++)
	{

        if (str[i]==sub[0])
		{

            for (k=i+1,j=1;str[k]!=0&&sub[j]!=0;k++,j++)
			{
                if (str[k]!= sub[j])
				{
                    break;
                }
            }
            if (sub[j] == 0)
			{

                sun00 = i;
                se = k;
                break;
            }
        }
    }

    if (sun00 < se) {
        if (strlen(sub) <= strlen(rep))
		{

            for (i=sun00,j=0; rep[j]!=0; i++,j++)
			{
                str[i] = rep[j];
            }

            for (k=se; str[k]!=0; k++,i++)
			{
                str[i] = str[k];
            }

            str[i] = 0;
        }
        else {

            i=strlen(str)+strlen(rep)-strlen(sub);
            for (k=strlen(str); k>=se; k--,i--)
			{
                str[i] = str[k];
            }

            for (i=sun00,j=0; rep[j]!=0; i++,j++)
			{
                str[i] = rep[j];
            }
        }
    }

    printf(str);

}


int main(){
	char str[257],sub[257],rep[257];
	int i,r1,r2,r3,j,q,h=0,result=0;
	scanf("%s",str);
	scanf("%s",sub);
	scanf("%s",rep);
	r1=strlen(str);
	r2=strlen(sub);
	r3=strlen(rep);
    for(i=0;i<r1;i++){
		if(str[i]==sub[0]){
			for(j=0;j<r2;j++){
				if(str[i+j]!=sub[j])
					break;
			}
			if(j==r2){
				result=1;
				for(q=i;q<i+r3;q++){
					str[q+r3]=str[q+r2];
					str[q]=rep[h];
					h++;
				}
				printf("%s",str);
				break;
			}
		}

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


int main(){
	char y[256],z[256],h[256],sc[256];
    gets(y);
	gets(z);
	gets(h);
	int k=0,count=0,o;
	int a=strlen(y);
	int b=strlen(z);
	int c=strlen(h);
	for(int i=0;i<a;i++){
		if(y[i]==z[k]){
			k++;
			count++;
			if(count==b){
			   break;
			}
		}else if(count!=b){
			if(count>0){
				i--;
			}
			count=0;
			k=0;
		}
		o=i;
	}
	int e=o-k+2;
	int f=0;
	for(int m=0;m<a;m++){
		if((m>=e)&&(m<e+c)){
			 sc[m]=h[f];
			 f++;
		}else{
			 sc[m]=y[m];
		}
	}
	for(int l=0;l<a;l++){
   	     printf("%c",sc[l]);
	}
	return 0;
}


int main()
{
	char s[N],w[N],h[N];
	int len_1,len_2,len_3,i,j,k=0;
	scanf("%s",s);
	scanf("%s",w);
	scanf("%s",h);
	len_1=strlen(s);
	len_2=strlen(w);
	len_3=strlen(h);
	for(j=0;j<len_1;j++)
	{
		if(s[j]==w[0])
		{
			for(i=1;i<len_2;i++)
				if(s[j+i]!=w[i])
					break;
				if(i==len_2)
				{
					k=1;
					break;
				}
		}
	}
				if(k)
				{
					for(k=0;k<j;k++)
						printf("%c",s[k]);
					for(k=0;k<len_3;k++)
						printf("%c",h[k]);
					for(k=j+len_3;k<len_1;k++)
						printf("%c",s[k]);
					printf("\n");
				}
				else
				{
					printf("%s",s);}
				return 0;
}


int main()
{
    char string[256], substring[256], replacement[256], buffer[256]={0}, result[256]={0};
    scanf("%s %s %s", string, substring, replacement);
    int mainlen=strlen(string), sublen=strlen(substring);
    int i;
    for (i=0;i<=mainlen-sublen;i++)
    {
        strncpy(buffer, (string+i), sublen);
        if (!strcmp(buffer,substring))
        {
   strncpy(result, string, i);//???????????????????????????????????
   strcat(result,replacement);
   strcat(result,(string+i+sublen));
            printf("%s",result);
            return 0;
        }
    }
 printf("%s",string);//?????????????
 return 0;
}


int main()
{
	char str[1000], sub[500], rep[500];
	int n, m, cut, i = 0, flag = 0;
	cin >> str >> sub >> rep;
	n = strlen(str);
	m = strlen(sub);
	cut = strlen(rep);
	while(str[i] != '\0')
	{
		if(str[i] == sub[0])
		{
			int j = 0;
			int k = i;
			while(sub[j] != '\0')
			{
				if(sub[j] == str[k])
				{
					j++;
					k++;
				}
				else
					break;
			}
			if(j == m)
			{
				for(int t = n-1; t >= i + m; t--)
				{
					str[t + cut - m] = str[t];
				}
				str[n  + cut - m ] = '\0';
				for(int t = i; t < i + cut ;t++)
				{
					str[t] = rep[t-i];
				}
				flag = 1;
			}
			if(flag == 1)
				break;
		}
		i++;
	}
	cout<<str;
	return 0;
}


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


int main()
{
	char str[256];
	char sub[256];
	char rep[256];
	cin >> str >> sub >> rep;
	int len = strlen(sub);
	int i = 0;
	char *p, *q, *r;
	p = strstr(str, sub);
	q = rep;
	if (p != NULL)
	{
	for (r = p; r < p + len; r++)
		*r = *q++;
	}
	cout << str << endl;
	return 0;
}


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

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

    printf("%s",z);
    for(i=loc+lz;i<lw;i++){
                         printf("%c",w[i]);
                         }
    }
    else{
         puts(w);
         }

        return 0;
}


int main()
{
   int i,n,k,m,j,tag=1,jieshu=1;
   char zfc[257],dth[257],bth[257],danci[257];
   int zhyw=0;
    gets(zfc);
	gets(dth);
	gets(bth);
    n=strlen(zfc);
    m=strlen(dth);
  for(i=0;i<n;i++)
  {
        if(zfc[i]==dth[0])
        {
             for(k=1;k<m;k++)
             {
               if(zfc[i+k]!=dth[k])
                   tag=0;
             }
             if(tag)
             {
                printf("%s",bth);
                for(j=i+m;j<n;j++)
                  printf("%c",zfc[j]);
                jieshu=0;

             }
              tag=1;
        }
        if(jieshu)
        {
              printf("%c",zfc[i]);

        }
        if(jieshu==0)
         break;
  }

     return 0;
}


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


int main()
{
	char string[256] , substring[256] , replacement[256] ;
		cin >> string >> substring >> replacement;
		int i , j = 0 , length1 , length2 , m , num = 0;
		length1 = strlen(string);
		length2 = strlen(substring);
		for(i = 0 ; i < length1 ; i++)
		{
			m = i;
			if(string[i] == substring[j])
			{

				for(j = 0 ; j < length2 ; j++)
				{
					if(string[i] == substring[j])
					{
						i++;
						num++;
					}
				}
			}
			j = 0;
			i = m;
			if(num == length2)
			{
				for(j = 0 ; j < length2 ; j++)
				{
					string[i] = replacement[j];
					i++;
				}
			break;
			}
			num = 0;
		}
		cout << string <<endl;
		return 0;
}


int main( ){
        char str[256],zc[50],th[50];
		int i,j,t=0,n,m;
		gets(str);
		gets(zc);
		gets(th);
        n=strlen(zc);
		m=strlen(th);
		for(i=0;str[i]!='\0';i++){
			if(str[i]==zc[0]){
				for(j=1;j<n;j++){
					if(str[i+j]==zc[j]){
					   j++;
					   t=1;
					   continue;}
					else
						t=0;
						break;
				}
			}
			if(t){
				for(j=0;j<m;j++){
				str[i+j]=th[j];
				}

			   break;
			}

		}

		puts(str);

        return 0;
}


int main(){
	char yuanchuan[257];
	char zichuan[257];
	char replacement[257];
	int i,j,k;
	int len1,len2;
	scanf("%s%s%s",yuanchuan,zichuan,replacement);
	len1=strlen(yuanchuan);
	len2=strlen(zichuan);
	k=len1;
	for(i=0;i<len1-len2+1;i++){
		for(j=0;j<len2;j++){
			if(yuanchuan[i+j]!=zichuan[j]){
				break;
			}
			if(j==len2-1){
				k=i;
			}
		}
		if(k!=len1){
			break;
		}
	}
	if(k==len1){
		printf("%s",yuanchuan);
	}else{
	    for(i=0;i<k;i++){
		    printf("%c",yuanchuan[i]);
		}
	    printf("%s",replacement);
		for(i=k+len2;i<len1;i++){
			printf("%c",yuanchuan[i]);
		}
	}
	return 0;
}


int main(void)
 {
	char string[256]={'\0'};
	char subString[100]={'\0'};
	char replacement[100]={'\0'};
	int i=0,j=0,k=0;
	char c='\0';
	while(c != '\n')
	{
		c=getchar();
		if(c != '\n')
		{
			string[i] = c;
			i++;
		}
	}
	scanf("%s",subString);
	scanf("%s",replacement);
	for(i=0;i<strlen(string);i++)
	{
		if(string[i] == subString[0])
		{
			k=i;
			for(j=0;j<strlen(subString);j++,k++)
			{
				if(subString[j] != string[k]){break;}
			}
			if(j==strlen(subString))
			{
				k=i;
				for(j=0;j<strlen(replacement);j++,k++)
				{
					string[k]=replacement[j];
				}
				break;
			}
		}
	}
	printf("%s\n",string);
    return 0;
 }


int main()
{
	int i, j, k, lch, lsub ,lre;
	char ch[256];
	char subch[256];
	char replace[256];
	cin >> ch;
	cin >> subch;
	cin >> replace;
	lch = strlen(ch);
	lsub = strlen(subch);
	lre = strlen(replace);
	for (i = 0 ; i < lch ; i++)
	{
		if (ch[i] == subch[0])
		{
			for (j = 0 ; j < lsub ; j++)
			{
				if (ch[i + j] != subch[j])
				break;
			}
			if (j == lsub)
			{
				for (k = 0 ; k < lsub ; k++)
				{
					ch[i + k] = replace[k];
				}
				break;
			}
		}
	}
	for (i = 0 ; i < lch ; i++)
	{
		cout << ch[i];
	}
	return 0;
}


int main()
{
    int i,j,k,result;
    char input[100],substring[20],replace[20],cpy[20];
    scanf("%s\n%s\n%s",input,substring,replace);
    result=strlen(input)-strlen(substring);
	for(i=0;i<=result;i++)
    {
        if(input[i]==substring[0])
        {
            int a;
            a=strlen(substring);
            for(j=0;j<a;j++)
            {
                cpy[j]=input[i+j];
				cpy[j+1]='\0';
            }
            int m;
            m=strcmp(cpy,substring);
            if(m==0)
            {

                for(k=0;k<i;k++)
                {
					printf("%c",input[k]);
                }
				printf("%s",replace);
				for(k=i+a;k<strlen(input);k++)
                {
					printf("%c",input[k]);
                }
				return 0;
            }
        }
    }
	printf("%s",input);
	return 0;
}


int main()
{
	char str[300], subStr[10], re[10];
	int i, j, lenth, m, n;
	int flag = 0;
	cin >> str >> subStr >> re;
	lenth = strlen(str);
	n = strlen(subStr);
	m = strlen(re);
	for (i = 0; i < lenth; i++)
	{
		j = 0;
		if (str[i] == subStr[j])
		{
			for (j = 0; j < n; j++)
			{
				if (str[i] == subStr[j])
					i++;
				else
					break;
			}
		}
		if (j == n)
		{
			flag = 1;
			for ( ; j > 0; i--, j--)
			{
				str[i - 1] = re[j - 1];
			}
		}
		if (flag == 1)
		{
			break;
		}
	}
	cout << str;
	return 0;
}


int main()
{
	int i,len1,len2,len3,j,m=0,l;
	char zifu[256],chazhao[256],tihuan[256];
	scanf("%s%s%s",zifu,chazhao,tihuan);
	len1=strlen(zifu);
	len2=strlen(chazhao);
	len3=strlen(tihuan);
	for(i=0;i<len1;i++)
	{   m=0;
		if(zifu[i]==chazhao[0])
		{
			for(j=0;j<len2;j++)
			{
				if(zifu[i+j]==chazhao[j])
					m++;
				if(zifu[i+j]!=chazhao[j])
					break;
			}

		}
			if(m==len2)
				break;

	}

	if(i<len1)
	{
		if(len2==len3)
		{
			for(l=0;l<len2;l++)
				zifu[i+l]=tihuan[l];
		}
		else if(len2>len3)
		{
			for(l=0;l<len3;l++)
			{
				zifu[i+l]=tihuan[l];
			}
			for(l=i+len2;l<len1+1;l++)
				zifu[l+len3-len2]=zifu[l];
		}
		else if(len2<len3){
			for(l=i+len2;l<len1+1;l++)
				zifu[l+len3-len2]=zifu[l];
			for(l=0;l<len3;l++)
				zifu[i+l]=tihuan[l];
		}
	}

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


int main()
{
	char s[300],subs[15],reps[15];
	int i,j,k,ls,lsub,lrep,w;
	scanf("%s",s);
	scanf("%s",subs);
	scanf("%s",reps);
	ls=strlen(s);
	lsub=strlen(subs);
	lrep=strlen(reps);
	for(i=0;i<ls;i++)
	{
		w=0;
		for(j=0;j<lsub;j++)
		{
			if(s[i+j]==subs[j]) w++;
		}
		if(w==lsub)
		{
			for(k=0;k<i;k++)
				printf("%c",s[k]);
			for(k=0;k<lrep;k++)
				printf("%c",reps[k]);
			for(k=i+lsub;k<ls;k++)
				printf("%c",s[k]);
			break;
		}
	}
	if(w!=lsub) printf("%s\n",s);
	return 0;
}


int main()
{
	char a[280],b[280],c[280];
	char res[280];
	char t[280];
	int i,j;
	int check=0;
	scanf("%s %s %s",a,b,c);

	for(i=0;i<strlen(a);i++)
	{
		if(check==1)break;
		if(b[0]==a[i])
		{
			for(j=0;j<280;j++)t[j]='\0';
			for(j=0;j<280;j++)res[j]='\0';
			for(j=i;j<i+strlen(b);j++)t[j-i]=a[j];
			if(strcmp(b,t)==0)
			{
				check=1;
				for(j=0;j<i;j++)res[j]=a[j];
				for(j=i;j<strlen(c)+i;j++)res[j]=c[j-i];
				for(j=strlen(c)+i;j<strlen(a)+strlen(c)-strlen(b);j++)res[j]=a[j+strlen(b)-strlen(c)];
			}

		}

	}
	if(check==1)printf("%s\n",res);
	else printf("%s\n",a);
	return 0;

}


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


int main(int argc, char* argv[])
{
    int la,lb,i,j,n,k,x,p;
	char a[100],b[100],c[100],d[100];
	scanf("%s %s %s",a,b,d);
	la=strlen(a);
	lb=strlen(b);
	n=la-lb;
	for(i=0;i<=n;i++)
	{
        if(b[0]==a[i])
		{
			k=i;
			p=i;
			for(j=0;j<lb;j++)
			{
				c[j]=a[k];
				k++;
			}
			c[lb]='\0';
			if(strcmp(c,b)==0)
			{
				for(x=0;x<lb;x++)
				{
					a[p]=d[x];
					p++;
				}
				break;
			}
		}
		else
			continue;
	}

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

}


int comp(char a[100],char b[100],int i)
{
	int l,j;
	l=strlen(b);
	for (j=0;j<l;j++)
		if (a[i+j]!=b[j])
			return 0;
		return 1;
}

int main(int argc, char* argv[])
{
	int i,j,len1,len2,len3,break1=0;
	char a[100],b[100],c[100];
    int comp(char a[100],char b[100],int i);
	scanf("%s %s %s",a,b,c);
	len1=strlen(a);
    len2=strlen(b);
    len3=strlen(c);
	for (i=0;i<100;i++)
	{
		if (a[i]==b[0])
		{
			if (comp(a,b,i))
			{
				for (j=0;j<i;j++)
				{
					printf("%c",a[j]);
				}
				printf("%s",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 search(char a[],char b[])
{
    int la=strlen(a),lb=strlen(b),i,j;
    for (i=0;i<=lb-la;i++)
    {
        for (j=0;j<la;j++)
            if (a[j]!=b[i+j])
               break;
        if (j==la)
           return i;
    }
    return 999;
}
int main()
{
    char s[300],a[300],b[300];
    int m,i;
    scanf("%s%s%s",&s,&a,&b);
    m=search(a,s);
    if (m==999)
    {
       printf("%s\n",s);
       getchar();
       getchar();
       return 0;
    }
    for (i=0;i<m;i++)
        printf("%c",s[i]);
    printf("%s",b);
    for (i+=strlen(a);i<strlen(s);i++)
        printf("%c",s[i]);
    getchar();
    getchar();
    return 0;
}


int main(int argc, char* argv[])
{
	char a[3][257];
	int i;
	int l1,l2,l3,re;
	for(i=0;i<3;i++)
		scanf("%s",a[i]);
	l1=strlen(a[0]);
	l2=strlen(a[1]);
	l3=strlen(a[2]);
	int j,k,z=0,num=0,x=0,count=0;
	for(j=0;j<l1;j++)
	{
		if(a[0][j]==a[1][0])
		{
			z=j+1;
			for(k=1;k<l2;k++)
			{
				if(a[0][z]==a[1][k])
					num++;
				else
					break;
				z++;
			}
		    if(num==l2-1)
			{
				re=1;
				count=j;
			}
			else
				continue;
		}
		else if(re==1)
			break;
		else
			continue;
	}
	if(re==1)
	{
		for(i=count;i<l2+count;i++)
		{
		   a[0][i]=a[2][x];
		   x++;
		}
		printf("%s",a[0]);
	}
	else
	    printf("%s",a[0]);
	return 0;
}


int main()
{
	char s[256], su[256], re[256];
	char t[256]={0};
gets(s);
gets(su);
gets(re);

int i,j=0,len=strlen(s);
int len1=strlen(su);
for(i=0;i<len;i++){
if(s[i]!=su[j]){
j=0;}

else{

j++;

}
if(j==len1){

	break;}
}

	if(j!=len1){
	printf("%s",s);
	}

int n=i+1;
if(i!=len){
int m=0;
for(n=i+1;n<len;n++){

t[m]=s[n];
m++;
}

int len2=strlen(t);

	s[len-len2-len1]='\0';
	strcat(s,re);
	strcat(s,t);

printf("%s",s);
}
if((i==len)&&(j==len1)){

	s[len-len1]='\0';

	strcat(s,re);
printf("%s",s);
}

return 0;}


int main()
{
	char str[300];
	char sub[300];
	char re[300];
	scanf("%s%s%s",str,sub,re);
	int i,j,k,first;
	int len=strlen(str);
	int len1=strlen(sub);
	int len2=strlen(re);
	first=0;
	for(i=0;i<len;i++)
	{
		if(str[i]==sub[0])
		{
			for(k=i,j=0;j<len1;j++,k++)
			{
				if(str[k]!=sub[j])
				{
					break;
				}
			}
		}
		if(j==len1)
		{
			first=i;
			break;
		}
	}
	if(j!=len1)
	{
		printf("%s",str);
	}else
	{
		for(i=0;i<first;i++)
		{
			printf("%c",str[i]);
		}
		printf("%s",re);
		for(i=(first+len2);i<len;i++)
		{
			printf("%c",str[i]);
		}
	}
	return 0;
}


void main()
{
	char string1[256],string2[256],string3[256];
	scanf("%s",string1);
	scanf("%s",string2);
	scanf("%s",string3);
	int length1,length2,length3,i,j,temp;
	length1=strlen(string1);
	length2=strlen(string2);
	length3=strlen(string3);
	for (i=0;i<=(length1-length2);i++)
	{
		if (string1[i]==string2[0])
		{
			j=1;
			temp=i+1;
			while (j<length2&&string1[temp]==string2[j])
			{
				temp++;j++;
			}
			if (j==length2)
			{
				strcpy(string2,string1+temp);
				strcpy(string1+i,string3);
				strcpy(string1+i+length3,string2);
				break;
			}
		}
	}
	printf("%s\n",string1);
}


int main()
{
	char string[256];
	char substring[256];
	char replacement[256];
	int x;
	gets(string);
	gets(substring);
	gets(replacement);
	x=strstr(string,substring)-&string[0];
	if(strchr(string,substring[0])!=0)memmove(string+x,replacement,strlen(replacement));
	printf("%s",string);
	return 0;
}


int main(){
	char s[256],ow[256],rw[256];
	scanf("%s%s%s",s,ow,rw);
	int lens,lenow;
    int i,j,k,l,t,flag;
	lens=strlen(s);
	lenow=strlen(ow);
	for(i=0;i<=(lens-lenow);i++){
		flag=1;
		for(j=0;j<lenow;j++){
			if(s[i+j]!=ow[j]){
				flag=0;
				break;
			}
		}
		if(flag!=0){
			t=i;
			break;
		}
	}
	if(flag==0){
		printf("%s",s);
	}
	else{
		for(k=0;k<t;k++){
			printf("%c",s[k]);
		}
		printf("%s",rw);
		for(l=t+lenow;l<lens;l++){
			printf("%c",s[l]);
		}
	}
	return 0;
}


int main()
{
    char str[256], substr[256], replace[256];
    cin >> str >> substr >> replace;
    int lenstr = strlen(str),
        lensubstr = strlen(substr),
        lenreplace = strlen(replace);
    int i, j;
    int flag = 0; //flag=1????
    int pos; //???????????pos
    for (i = 0; i <= lenstr - lensubstr; i++)
    {
        for (j = 0; j < lensubstr; j++)
        {
            if (str[i + j] != substr[j]) //???????
                break; //????
        }
        if (j == lensubstr) //????
        {
            pos = i;
            flag = 1;
            break;
        }
    }
    if (flag) //????
    {
        for (i = 0; i < pos; i++)
            cout << str[i]; //??????????????
        cout << replace; //???????
        cout << (str + pos + lensubstr) << endl; //??????????
    }
    else cout << str << endl; //????????????
    return 0;
}


int main()
{
	char a[256],b[256],c[256],*d,*e,*f,*g;
	int i;
	gets(a);
	g=a;
	gets(b);
	gets(c);
	d=strstr(a,b);
	if(!d)
	{
		printf("%s",g);
		exit(0);
	}
	f=a;
	i=strlen(a)-strlen(d);
	f[i]='\0';
	e=a+(strlen(a)-(strlen(d)-strlen(b)));
	printf("%s%s%s\n",f,c,e);
	return 0;
}


int main()
{
    char *p1,*p2,*p3,*p,*q;
    int i,j;
    p1=(char*)malloc(100*sizeof(char));
    p2=(char*)malloc(100*sizeof(char));
    p3=(char*)malloc(100*sizeof(char));
    q=(char*)malloc(100*sizeof(char));
    gets(p1);
    gets(p2);
    gets(p3);
    p=strstr(p1,p2);
    if(p==NULL)
      printf("%s",p1);
    else{
        for(i=0;p1!=p;p1++,i++)
       *(q+i)=*p1;
    *(q+i)='\0';
   for(j=0;j<strlen(p3);j++)
     *(q+i+j)=*(p3+j);
    for(j=0;*(p1+strlen(p2)+j)!='\0';j++)
      *(q+i+strlen(p3)+j)=*(p1+strlen(p2)+j);
     *(q+i+strlen(p3)+j)='\0';
     printf("%s",q);}
}


int main()
{
	char str[100],substr[50],r[50];
	gets(str);
	gets(substr);
	gets(r);
	int i,j,n,same=0;
	int l=strlen(substr);
	for(i=0;str[i]!=0;i++)
	{
		if(substr[0]==str[i])
		{
			same=1;
			for(j=1;substr[j]!=0;j++)
			{
				if(substr[j]!=str[i+j])
				{
					same=0;
					break;
				}
			}
			if(same==1)
			{
				n=i;
			    break;
			}
		}
    }
    if(same==1)
	{
		for(j=0;j<n;j++)
		{
			printf("%c",str[j]);
	    }
	    printf("%s",r);
	    for(j=n+l;str[j]!=0;j++)
	    {
			printf("%c",str[j]);
	    }
	}
	if(same==0)
	{
		printf("%s",str);
	}
	return 0;
}


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] = str[k];
            }

            for (i=ss,j=0; rep[j]!=0; i++,j++) {
                str[i] = rep[j];
            }
        }
    }

    printf(str);
    return 0;
}


int main(){
	int i,k,m,p,e ;
	char sz[1000],sf[1000],sc[1000];
	gets(sz);
	gets(sf);
	gets(sc);
	int len=strlen(sz);
	int len1=strlen(sf);
	for(i=0;i<len;i++){
		e=0;
        if(sz[i]==sf[0]){
	for(k=0;k<len1;k++){
		if(sz[i+k]==sf[k]){
			e++;
		}
	}

	if(e==len1){
for(m=0;m<i;m++){
	printf("%c",sz[m]);
}
printf("%s",sc);
for(p=i+len1;p<len;p++){
	printf("%c",sz[p]);
}

break;}
		}
		}
	if(e!=len1){
		printf("%s",sz);}
		return 0;
}


char s[300], subs[300], rep[300];

int ok(int wh)
{
    int i;
    for(i=wh; i<=wh+strlen(subs)-1; i++)
    {
        if(s[i]!=subs[i-wh])
        {
            return 0;
        }
    }
    return 1;
}

int main()
{
    int i, j, k, n, start;
    gets(s);
    gets(subs);
    gets(rep);
    start = -1;
    for(i=0; i<=strlen(s)-strlen(subs); i++)
        if(ok(i))
        {
            start = i;
            break;
        }
    if(start == -1)
    {
        puts(s);
        return 0;
    }
    for(i=0; i<start; i++)
    {
        printf("%c", s[i]);
    }
    for(i=0; rep[i]!='\0'; i++)
    {
        printf("%c", rep[i]);
    }
    for(i=start+strlen(subs); s[i]!='\0'; i++)
    {
        printf("%c", s[i]);
    }
    printf("\n");
    return 0;
}


int main()
{
	char str[256*2],sub[300],replacement[300],tmp[300];
	int i,j,result=-1,k;
	gets(str);
	gets(sub);
	gets(replacement);

	for(i=0;i<=(int)(strlen(str)-strlen(sub));i++)
	{
		if(str[i]==sub[0])
		{
			for(j=0;j<(int)strlen(sub);j++)
			{
				if(str[i+j]==sub[j])
				{
					result=i;
				}
				else
				{
					result=-1;
					break;
				}
			}
		}
		if(result!=-1)
			break;
	}
	k=(int)strlen(replacement);
	if(result!=-1)
	{
		strcpy(tmp,(str+i+j));
		strcpy((str+i),replacement);
		strcpy((str+i+k),tmp);
		printf("%s",str);
	}
	else printf("%s",str);
	return 0;
}


int main()
{
	char s1[256],s2[256],s3[256];
	int i,j,length1,length2,k;
	scanf("%s%s%s",s1,s2,s3);
	length1=strlen(s1);
	length2=strlen(s2);
	for(i=0;i<length1;i++)
	{
		j=0;
		for (;j<length2 && s1[i]==s2[j];j++)
				i++;
		if(j==length2)
		{
			for(k=0;k<length2;k++)
			s1[i-j+k]=s3[k];
			break;
		}
	}
	printf("%s",s1);
	return 0;
}


int Issubstr(char *s,char *subs)
{
	int i,j;
	for (i=0;i<strlen(s);i++)
	{
		for (j=0;j<strlen(subs);j++)
		{
			if(subs[j]!=s[i+j]) break;
		}
		if(j==strlen(subs)) break;
	}
	if(i<strlen(s)) return i;
	return -1;
}
int main()
{
	char s[257],sub[257],replace[257];
	int i,j=0;
	scanf("%s%s%s",s,sub,replace);
	for (i=Issubstr(s,sub);i!=-1&&j<strlen(replace);i++)
	{
		s[i]=replace[j++];
	}
	if(i>strlen(s)) s[i]='\0';
	printf("%s",s);
	return 0;
}


int main()
{
    char a[256],b[256],c[256];
    char *p;
    int lenth,d,i;
    scanf("%s",a);
    scanf("%s",b);
    scanf("%s",c);
    p=strstr(a,b);
    lenth=strlen(b);
    d=strlen(a);
    if(p!=NULL)
    {
        for(i=0;i<lenth;p++,i++)
        *p=c[i];
    }
    for(i=0;i<d;i++)
    printf("%c",a[i]);
}


void main()
{
    char string[256];
    char substring[256];
    char replacement[256];
    scanf("%s",string);
    scanf("%s",substring);
    scanf("%s",replacement);
    int length_string=strlen(string);
    int length_substring=strlen(substring);
    int length_replacement=strlen(replacement);
    int i,j,k;
    for(i=0;i<length_string;i++)
    {
       for(j=0;j<length_substring;j++)
       {
           if(substring[j]!=string[i+j])
           {
                 break;
           }
       }
       if(j==length_substring)
       {
           for(k=0;k<length_substring;k++)
           {
                  string[i+k]=replacement[k];
           }
		   break;
       }
	}
    printf("%s\n",string);

}


int main()
{
	char str[1000];
	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];

			}
			for(i=ss,j=0;rep[j]!=0;i++,j++)
			{
				str[i]=rep[j];
			}
		}
	}

	printf(str);
	return 0;
}


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

int main()
{
    char string[250], substring[250], replacestring[200];
    cin >> string >> substring >> replacestring;
    int place = 0, i, j, flag = 1;
    for (i = 0; string[i] != '\0' && flag == 1; i++)
    {
        if (string[i] != substring[0])
            continue;
        else
        {
            place = i;
            for (j = 0; substring[j] != '\0'; j++)
            {
                if (string[i++] != substring[j])
                    break;
            }
            if (substring[j] != '\0')
                place = 0;
            else
                flag = 0;
        }
    }
    if (place)
    {
        int l1 = strlen(substring), l2 = strlen(replacestring);
        for (i = 0; string[i + place + l1] != '\0'; i++)
            replacestring[l2 + i] = string[place + l1 + i];
        replacestring[l2 + i] = '\0';
        string[place] = '\0';
        cout << string << replacestring << endl;
    }
    else
        cout << string << endl;
    return 0;
}


void main()
{
	char a[256];
	char b[256];
	char c[256];
	int i,j,k,l,m,n,sum=0;
	scanf("%s",a);
	scanf("%s",b);
	scanf("%s",c);
	m=strlen(a);
	n=strlen(b);
	for(i=0;i<m;i++)
	{
		for(j=0;j<n;j++)
			if(b[j]==a[i+j]) sum+=1;
		if (sum==n) break;
		else sum=0;
	}
	if (sum==n)
	{
	for(k=i;k<n+i;k++)
		a[k]=c[k-i];
	}
	for(l=0;l<m;l++)
		printf("%c",a[l]);
	printf("\n");

}


int main(){
   char st[LEN],su[LEN],re[LEN];
   scanf("%s\n%s\n%s",st,su,re);
   int m,n,i,j,p=0,q;
   n=strlen(st);
   m=strlen(su);
   for(i=0;i<n;i++){
       if(su[0]==st[i]){
          for(j=1;j<m;j++){
              if(su[j]!=st[i+j]){
                 break;
			  }else p++;
		  }
	   }
	   if(p==(m-1)){
		   for(q=i;q<i+m;q++){
			   st[q]=re[q-i];
		   }
		   break;
	   }
   }
   printf("%s",st);
   return 0;
}


int main()
{
	int i,flag,w,j,len;
	char str[257],sub[200],rep[50];
	scanf("%s %s %s",str,sub,rep);
	len=strlen(sub);
	w=500;
	for(i=0;str[i]!='\0';i++)
	{
		if(str[i]==sub[0])
		{

			for(j=i;j<i+len;j++)
			{
				if(str[j]!=sub[j-i])
				{
					flag=0;
					break;
				}

			}

			if(flag!=0)
			{
				w=i;
			    break;
			}
			else flag=1;
		}
	}
	if(w!=500)
	{
	j=0;
	for(i=w+len;str[i]!='\0';i++)
	{
		sub[j]=str[i];
		j++;
	}
	sub[j]='\0';
	str[w]='\0';
	printf("%s%s%s",str,rep,sub);
	}
	else printf("%s",str);
	return 0;
}


int main(){
    char s[500],su[500],re[500];
	int len1,len2,i,j,k,l,m=0;
    scanf("%s%s%s",s,su,re);
	len1=strlen(s);
	len2=strlen(su);
    for(i=0;i<len1-len2+1;i++){
		k=0;
		for(j=0;j<len2;j++){
			if(s[i+j]!=su[j]){
			break;
			}
			else {
			k++;
			}
		}
		if(k==len2){
			m++;
			for(l=0;l<len2;l++){
			s[i+l]=re[l];
			}
		}
		if(m==1){
			break;}
	}
	printf("%s",s);

    return 0;
    }


void main()
{
	int i,j,d,e,f,k;
	char a[256],b[256],c[256];
	gets(a);
	scanf("\n");
	gets(b);
	scanf("\n");
	gets(c);
	d=strlen(a);
	e=strlen(b);
	f=strlen(c);
	for(i=0;i<d;i++)
	{
		if(b[0]==a[i])
		{
			k=i;
			for(j=0;j<e;j++,k++)
				if(b[j]!=a[k]) break;
				if(j<e) continue;
				else break;
		}
		else continue;
	}
	if(i<d)
	{
		for(j=i+e;j<(d-i-e);j++)
			a[f+j-e]=a[j];
		for(j=i;j<(i+f);j++)
			a[j]=c[j-i];
		printf("%s\n",a);
	}
	else printf("%s\n",a);
}


void main()
{
  void f(int x,int y);
  int m,n;
  scanf("%d %d",&m,&n);
  f(m,n);
}

void f(int x,int y)
{
  void h(int array[],int n);
  int i,c;
  int a[20],b[20];
  for(i=0;i<x;i++)
  scanf("%d",&a[i]);
  for(i=0;i<y;i++)
  scanf("%d",&b[i]);
  h(a,x);
  printf(" ");
  h(b,y);
  printf("\n");
}

void h(int array[],int n)
{
  int i,j,t;
  for(i=0;i<n-1;i++)
  for(j=0;j<n-i-1;j++)
  if(array[j]>array[j+1])
  {
   t=array[j];
   array[j]=array[j+1];
   array[j+1]=t;
  }
printf("%d",array[0]);
for(i=1;i<n;i++)
printf(" %d",array[i]);
}


int a[100],b[100],c[100];int m,n,i,j,k,xx;
void sort(int a[],int n)
{
	int i,j,t;
	for (i=1;i<=n-1;i++)
		for (j=1;j<=n-i;j++)
			if (a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
void merge(int a[],int b[],int m,int n)
{
	int i;
	for (i=1;i<=n;i++) a[m+i]=b[i];
}

void init(int a[],int b[])
{    //freopen("tt.in","r",stdin);
     scanf("%d%d",&m,&n);
	 for (i=1;i<=m;i++)

			 scanf("%d",&a[i]);
	 for (i=1;i<=n;i++)

			 scanf("%d",&b[i]);

	 }

void output(int a[],int k)
{
 int i;
	//freopen("tt.out","w",stdout);
	for(i=1;i<=k;i++) if (i==1) printf("%d",a[i]); else printf(" %d",a[i]);
}
int main()
{
init(a,b);
sort(a,m);
sort(b,n);
merge(a,b,m,n);
output(a,m+n);

return 0;
}


int m,n;
int a[100],b[100];

void scan()
{
	int i;
	scanf("%d%d",&m,&n);
	for(i=0;i<m;i++)
	{
		scanf("%d",&a[i]);
	}
	for(i=0;i<n;i++)
	{
		scanf("%d",&b[i]);
	}
}

void order(int N, int p[100])
{
	int i,j,amount=0;
	int min,max;
	min=p[0];
	max=p[0];
	for(i=0;i<N;i++)
	{
		if(p[i]<min)
			min=p[i];
		if(p[i]>max)
			max=p[i];
	}
	for(i=min;i<=max;i++)
	{
		for(j=0;j<N;j++)
		{
			if(p[j]==i)
			{
				if(amount==0)
					printf("%d",p[j]);
				else
					printf(" %d",p[j]);
				amount=amount+1;
			}

		}
	}
}

void combine(int N,int p[100],int M,int q[100])
{
	order(N,p);						//?????p??p[100]
	printf(" ");
	order(M,q);
	printf("\n");
}

int main()
{
	scan();
	combine(m,a,n,b);
	return 0;
}


int a[1000],b[1000];
void inputdata();
void outputdata();
void sortdata();

int main()
{
    inputdata();
    sortdata();
    outputdata();

    return 0;
}

void inputdata()
{
     cin>>a[0]>>b[0];
     for (int i=1;i<=a[0];i++) cin>>a[i];
     for (int i=1;i<=b[0];i++) cin>>b[i];
}
void sortdata()
{
     sort(a+1,a+a[0]+1);
     sort(b+1,b+b[0]+1);
}
void outputdata()
{
     for (int i=1;i<=a[0];i++) cout<<a[i]<<' ';
     for (int i=1;i<b[0];i++) cout<<b[i]<<' ';
     cout<<b[b[0]];
}


int Compare(const void *elem1, const void *elem2)
{
    if(*(int *)elem1>*(int *)elem2)return 1;
    if(*(int *)elem1==*(int *)elem2)return 0;
    if(*(int *)elem1<*(int *)elem2)return -1;
}
int * shuru(int m,int *a)
{
	a=(int *)malloc(m*sizeof(int));
	int i;
	scanf("%d",&a[0]);
	for(i=1;i<m;i++)
	{
		scanf(" %d",&a[i]);
	}
	return a;
}
int main()
{
    int suma,sumb,i;
    int *a;
    int *b;
    scanf("%d %d",&suma,&sumb);
    a=shuru(suma,a);
    b=shuru(sumb,b);
    qsort(a,suma,sizeof(int),Compare);
    qsort(b,sumb,sizeof(int),Compare);
    printf("%d",a[0]);
    for(i=1;i<suma;i++)
    {
    	printf(" %d",a[i]);
    }
    printf(" %d",b[0]);
    for(i=1;i<sumb;i++)
    {
    	printf(" %d",b[i]);
    }
    free(a);
    free(b);
}


int m,n,a[100],b[100],c[200];
int order(int str[],int po,int start)
{
	for(int i=1;i<po;i++)
	{
		for(int j=1;j<=po-i;j++)
		{
			if(str[j]>str[j+1]) swap(str[j],str[j+1]);
		}
	}
	for(int i=start;i<po+start;i++)
		{
			c[i]=str[i-start+1];
	}
	return 0;
}
int output()
{
	order(a,m,1);
	order(b,n,m+1);
	for(int i=1;i<m+n;i++) cout<<c[i]<<" ";
	cout<<c[m+n];
	return 0;
}
int main()
{
	cin>>m>>n;
	for(int i=1;i<=m;i++) cin>>a[i];
	for(int j=1;j<=n;j++) cin>>b[j];
	output();
	return 0;
}


int comp(const void *a,const void *b);
int main()
{
	int n,m,i,j,k;
	scanf("%d %d",&n,&m);
	int a[n],b[m];
	for(i=0;i<n;i++)
	 scanf("%d",&a[i]);
	for(i=0;i<m;i++)
	 scanf("%d",&b[i]);
    qsort(a,n,sizeof(int),comp);
    qsort(b,m,sizeof(int),comp);
    for(i=0;i<n;i++)
     printf("%d ",a[i]);
    for(i=0;i<m;i++)
     {printf("%d",b[i]);
      if(i<m-1)
       printf(" ");
     }
    return 0;
}
int comp(const void*a,const void*b)
{
    return*(int*)a-*(int*)b;
}


void read();
void sort();
void connect();
void output();
int one,two,first[100],second[100];
int main()
{
	read();sort();connect();output();
	return 0;
}
void read()
{cin>>one>>two;
for(int i=0;i<one;i++)
cin>>first[i];
for(int i=0;i<two;i++)
cin>>second[i];
}
void sort()
{
	for(int i=0;i<one;i++)
		for(int j=0;j<one-i-1;j++)
			if(first[j]>first[j+1])swap(first[j],first[j+1]);
	for(int i=0;i<two;i++)
		for(int j=0;j<two-i-1;j++)
			if(second[j]>second[j+1])swap(second[j],second[j+1]);
}
void connect()
{
	for(int i=0;i<two;i++)
		first[one+i]=second[i];
}
void output()
{
	cout<<first[0];
	for(int i=1;i<one+two;i++)
		cout<<' '<<first[i];
}


int a[100],b[100];
int num1,num2;
void getin()
{
	int i,j;
	cin>>num1>>num2;
	for(i=1;i<=num1;i++)
		cin>>a[i];
	for(j=1;j<=num2;j++)
		cin>>b[j];
}
void order(int aa[],int num)
{
	int t,i,j;
	for(i=1;i<num;i++)
		for(j=1;j<num;j++)
			if(aa[j]>aa[j+1])
			{
				t=aa[j];
				aa[j]=aa[j+1];
				aa[j+1]=t;
			}
}
void print(int a[],int b[],int num1,int num2)
{
	cout<<a[1];
	int i;
	for(i=2;i<=num1;i++)
		cout<<" "<<a[i];
	for(i=1;i<=num2;i++)
		cout<<" "<<b[i];
	cout<<endl;
}

int main()
{

	getin();
	order(a,num1);
	order(b,num2);
	print(a,b,num1,num2);
	return 0;
}


int n1, n2;
int num1[100], num2[100];
void in(int n,int a[])
{
	for(int i = 0; i < n; i++)
		cin>>a[i];
}
void com(int n, int a[])
{
	int temp;
	for(int i = 0; i < n - 1; i++)
		for(int j = 0; j < n - i - 1; j++)
			if(a[j] > a[j + 1])
			{
				temp = a[j];
				a[j] = a[j + 1];
				a[j + 1] = temp;
			}
}
int main()                                  //???
{
	cin>>n1>>n2;
	in(n1, num1);
	com(n1, num1);
	in(n2, num2);
	com(n2, num2);
	for(int i = 0; i < n1; i++)
		cout<<num1[i]<<' ';
	for(int j = 0; j < n2 - 1; j++)
		cout<<num2[j]<<' ';
	cout<<num2[n2 - 1]<<endl;
    return 0;
}


int main()
{
    int a[1000],b[1000],c[1000];
    int i,n1,n2;
    void shubingpai(int x[],int y[],int z[],int m,int n);
    scanf("%d%d",&n1,&n2);
    for(i=0;i<n1;i++)
    scanf("%d",&a[i]);
    for(i=0;i<n2;i++)
    scanf("%d",&b[i]);
    shubingpai(a,b,c,n1,n2);
    for(i=0;i<(n1+n2-1);i++)
    printf("%d ",c[i]);
    printf("%d",c[n1+n2-1]);
    }
void shubingpai(int x[],int y[],int z[],int m,int n)
{
    void pai(int c[],int n) ;
    int i;
    pai(x,m);
    pai(y,n);
    for(i=0;i<m;i++)
    z[i]=x[i];
    for(i=m;i<m+n;i++)
    z[i]=y[i-m];
}
void pai(int c[],int n)
{
    int i,j,k,t;
    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
        if(c [j]<c [k])
        k=j;
        t=c[k];c[k]=c[i];c[i]=t;
    }
}


int a[20],b[20],c[40],la=0,lb=0;
int read(int a[],int b[]);
int sort(int a[],int b[]);
int catenate(int a[],int b[],int c[]);
int print(int c[],int l);
int main()
{
	read(a,b);
	sort(a,b);
	catenate(a,b,c);
	print(c,la+lb);
	return 0;
}
int read(int a[],int b[])
{
	int i;
	cin>>la>>lb;
	for(i=1;i<=la;i++) cin>>a[i];
	for(i=1;i<=lb;i++) cin>>b[i];
	return 0;
}
int sort(int a[],int b[])
{
	int i,j,change;
	for(i=1;i<la;i++)
		for(j=1;j<=la-i;j++)
			if(a[j]>a[j+1])
			{
				change=a[j];
				a[j]=a[j+1];
				a[j+1]=change;
			}
	for(i=1;i<lb;i++)
		for(j=1;j<=lb-i;j++)
			if(b[j]>b[j+1])
			{
				change=b[j];
				b[j]=b[j+1];
				b[j+1]=change;
			}
	return 0;
}
int catenate(int a[],int b[],int c[])
{
	int i;
	for(i=1;i<=la;i++) c[i]=a[i];
	for(i=1;i<=lb;i++) c[la+i]=b[i];
	return 0;
}
int print(int c[],int l)
{
	int i;
	cout<<c[1];
	for(i=2;i<=l;i++) cout<<" "<<c[i];
	return 0;
}


int a[100],b[100],c[200],m,n;
void getstr()
{
	int i;
	scanf("%d%d",&m,&n);
	for (i=0;i<m;i++)
		scanf("%d",&a[i]);
	for (i=0;i<n;i++)
		scanf("%d",&b[i]);
}

void rangestr()
{
	void range(int str[100],int length);
	range(a,m);
	range(b,n);
}

void range(int str[100],int length)
{
	int i,j,t;
	for (i=0;i<length-1;i++)
	    for (j=0;j<length-i-1;j++)
			if(str[j]>str[j+1])
			{
				t=str[j+1];
				str[j+1]=str[j];
				str[j]=t;
			}
}

void combinestr()
{
	int i;
	for (i=0;i<m;i++)
		c[i]=a[i];
	for (i=m;i<m+n;i++)
		c[i]=b[i-m];
}

void putstr()
{
	int i;
	for (i=0;i<m+n-1;i++)
		printf("%d ",c[i]);
	printf("%d",c[m+n-1]);
}

void main()
{
	getstr();
	rangestr();
	combinestr();
	putstr();
}


main()
{	int m,n;
	int input(int a,int b);
	scanf ("%d %d",&m,&n);
	input(m,n);
}

int input(int a ,int b)
{
	int c[1000],d[1000];
	for (int i =0;i<a;i++)
	scanf("%d",&c[i]);
	for(int j=0;j<b;j++)
	scanf("%d",&d[j]);
	int sort(int e[],int s);
	sort (c,a);
	printf(" ");
	sort (d,b);
}
int sort(int e[],int s)
{
	int temp;
	for (int r=0;r<s-1;r++)
		for(int q=r+1;q<s;q++)
		{
			if (e[r]>e[q])
			{
			temp=e[r];
			e[r]=e[q];
			e[q]=temp;
			}
		}
	for (int p=0;p <s-1;p++)
		printf ("%d ",e[p]);
		printf ("%d",e[s-1]);

}


int a[100],b[100],n,m;
 void shuru( void);
    void paixu( void);
    void hebing( void);
    void shuchu( void);
int main()
{

    shuru( );
    paixu( );
    hebing( );
    shuchu( );
    return 0;
}
     void shuru(void )
     {
         int x,y;
         cin >>x>>y;
         int i;
         for(i=0;i<x;i++)
         cin >>a[i];
         for(i=0;i<y;i++)
         cin >>b[i];
         n=x;
         m=y;
         }
     void paixu(void )
     {
         int i,j,t;
         for(i=0;i<n-1;i++)
         for(j=i;j<n;j++)
         {
             if(a[i]>a[j])
             {
                 t=a[i];a[i]=a[j];a[j]=t;
                 }
                 }
         for(i=0;i<m-1;i++)
         for(j=i;j<m;j++)
         {
            if(b[i]>b[j])
            {
                 t=b[i];b[i]=b[j];b[j]=t;
                 }
                 }
         }
     void hebing( void)
     {
          int i;
          for(i=n;i<m+n;i++)
          a[i]=b[i-n];
          }
     void shuchu(void )
     {
          int i;
          for(i=0;i<m+n-1;i++)
          cout<<a[i]<<" ";
          cout<<a[m+n-1];
          }


int a[MAX],b[MAX],al,bl;

void input()
{
	int i;
	scanf("%d %d\n",&al,&bl);
	for(i=0;i<al;i++)
		scanf("%d",&a[i]);
	for(i=0;i<bl;i++)
		scanf("%d",&b[i]);

}

void Qsort(int start,int length,int a[])
{
	int x = a[start];
	int i,j;
	i = start;
	j = length -1;
	while(i < j)
	{
		if(x < a[j])
			j--;
		else if(x > a[j])
		{
			a[i] = a[j];
			a[j] = x;
			i++;
		}
		else if(x < a[i])
		{
			a[j] = a[i];
			a[i] = x;
			j--;
		}
		else
			i++;
	}
	if(start < length-1)
	{
		Qsort(start,i,a);
		Qsort(i+1,length,a);
	}
}

void sort()
{
	Qsort(0,al,a);
	Qsort(0,bl,b);
}

void combine()
{
	int i;
	for(i=0;i<bl;i++)
		a[i+al]=b[i];
}

void output()
{
	int i;
	for(i=0;i<bl+al-1;i++)
		printf("%d ",a[i]);
printf("%d",a[i]);

}
//????????????main??????????????????
void main()
{
	input();
	sort();
	combine();
	output();

}


void input(int *p,int *q,int *n,int *m)
{
     int *x;
     scanf("%d %d",n,m);
     x=p+*n;
     for(;p<x;p++)
        scanf("%d",p);
     x=q+*m;
     for(;q<x;q++)
        scanf("%d",q);
}

void sort(int *p,int n)
{
     int x,i,j,k;
     for(i=0;i<n-1;i++)
     {
         k=i;
         for(j=i+1;j<n;j++)
            if(*(p+j)<*(p+k)) k=j;
         if(k!=i)
         {
                 x=*(p+i);
                 *(p+i)=*(p+k);
                 *(p+k)=x;
         }
     }
}

void copy(int *p,int *q,int x[],int n,int m)
{
     int i;
     for(i=0;i<n;i++,p++)
        x[i]=*p;
     for(;i<n+m;i++,q++)
        x[i]=*q;
}

void output(int *p,int n)
{
     int *y;
     y=p+n-1;
     printf("%d",*p);
     p++;
     for(;p<=y;p++)
        printf(" %d",*p);
}

int main()
{
     int i,a[100],b[100],c[200],x,y,*n,*m;
     n=&x;
     m=&y;
     input(a,b,n,m);
     sort(a,x);
     sort(b,y);
     copy(a,b,c,x,y);
     output(c,x+y);

}


main ()
{
    int m,n,a[1000],b[1000];
    void in(int xx[],int,int yy[],int);
    void arr(int ddd[],int);
    void con(int aa[],int,int bb[],int);
    void out(int dd[],int);
    scanf("%d%d",&m,&n);
    in(a,m,b,n);
    arr(a,m);
    arr(b,n);
    con(a,m,b,n);
    out(a,m+n);
}

void in(int xx[],int x,int yy[],int y)
{
    int i;
    for(i=0;i<x;i++)
        scanf("%d",&xx[i]);
    for(i=0;i<y;i++)
        scanf("%d",&yy[i]);
}

void arr(int ddd[],int x)
{
    int i,j,min,k;
    for(i=0;i<x-1;i++)
    {
        min=ddd[i];
        for(j=i+1,k=i;j<x;j++)
        {
            if(ddd[j]<min)
            {
                min=ddd[j];
                k=j;
            }
        }
        ddd[k]=ddd[i];
        ddd[i]=min;
        }
}

void con(int aa[],int x,int bb[],int y)
{
    int i;
    for(i=x;i<x+y;i++)
        aa[i]=bb[i-x];
    x=x+y;
}

void out(int dd[],int x)
{
    int i;
    printf("%d",dd[0]);
    for(i=1;i<x;i++)
        printf(" %d",dd[i]);
}


void scan(int x[],int *nx,int y[],int *ny)
{
         int i;
	scanf("%d %d",nx,ny);
	for(i=0;i<*nx;i++)
		scanf("%d",&x[i]);
	for(i=0;i<*ny;i++)
		scanf("%d",&y[i]);
}
void sort(int x[],int num)
{
         int i,j;
	for(i=num-1;i>=1;i--)
		for(j=1;j<=i;j++)
			if(x[j-1]>x[j])
			{
				int temp=x[j-1];
				x[j-1]=x[j];
				x[j]=temp;
			}
}
void exp(int a[],int b[],int na,int nb)
{
         int i;
	for(i=na;i<na+nb;i++)
		a[i]=b[i-na];
}
void print(int a[],int na,int nb)
{
	printf("%d",a[0]);int i;
	for(i=1;i<na+nb;i++)
		printf(" %d",a[i]);
}
void main()
{
	int a[100],na,b[100],nb;
	scan(a,&na,b,&nb);
	sort(a,na);
	sort(b,nb);
	exp(a,b,na,nb);
	print(a,na,nb);
}


void output(int c[],int m,int n)
{
	int i;
	printf("%d",c[1]);
	for(i=2;i<=n+m;i++)
		printf(" %d",c[i]);
}
void combine(int a[],int b[],int m,int n)
{
	int c[100];
	int i,j=1;
	for(i=1;i<=m;i++)
	{
		c[i]=a[i];
	}
	for(i=m+1;i<=n+m;i++,j++)
	{
		c[i]=b[j];
	}
	output(c,m,n);
}
void order(int a[],int b[],int m,int n)
{
	int i,j,temp;
	for(i=1;i<m;i++)
	{
		for(j=1;j<=m-i;j++)
		{
			if(a[j]>a[j+1])
			{
				temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}
		}
	}
	for(i=1;i<n;i++)
	{
		for(j=1;j<=n-i;j++)
		{
			if(b[j]>b[j+1])
			{
				temp=b[j];
				b[j]=b[j+1];
				b[j+1]=temp;
			}
		}
	}
	combine(a,b,m,n);
}
void input(void)
{
	int i,a[100],b[100],m,n;
	scanf("%d %d",&m,&n);
	for(i=1;i<=m;i++)
		scanf("%d",&a[i]);
	for(i=1;i<=n;i++)
		scanf("%d",&b[i]);
	order(a,b,m,n);
}
int main()
{
	input();
	return 0;
}


int b[2][10],e[20]={0},c=0,d=0;
scanning()
{
	scanf("%d %d",&c,&d);
}

scanning_array(int y,int x)
{
	int i;
	for(i=0;i<x;i++)
	{
		scanf("%d",&b[y][i]);
	}
}

void arrange(int m,int a[])
{
	int i,j,t;
	for(i=0;i<m;i++)
		for(j=0;j<m-i-1;j++)
		{
			if(a[j]>a[j+1])
			{
				t=a[j];
				a[j]=a[j+1];
				a[j+1]=t;
			}
		}
}

combine(int x[],int y[])
{
	int i;
	for(i=0;i<c;i++)
		e[i]=b[1][i];
	for(i=c;i<c+d;i++)
		e[i]=b[2][i-c];
}

print()
{
	int i;
	for(i=0;i<c+d;i++)
	{
		printf("%d",e[i]);
		if(i!=c+d-1)
		printf(" ");
	}
}

void main()
{
	scanning();
	scanning_array(1,c);
	scanning_array(2,d);
	arrange(c,b[1]);
	arrange(d,b[2]);
	combine(b[1],b[2]);
	print();
}


void read(int *pm,int *pn,int *p1,int *p2)
{
	int i,j;
	scanf("%d %d",pm,pn);
	for(i=0;i<*pm;i++)
		scanf("%d",p1+i);
	for(j=0;j<*pn;j++)
		scanf("%d",p2+j);
}

void sort(int *pm,int *pn,int *p1,int *p2)
{
	int i,j,k,tmp;
	for(i=0;i<*pm-1;i++)
	{
		k=i;
		for(j=i+1;j<*pm;j++)
			if(*(p1+j)<*(p1+k)) k=j;
		if(k!=i)
		{
			tmp=*(p1+k);
			*(p1+k)=*(p1+i);
			*(p1+i)=tmp;
		}
	}
	for(i=0;i<*pn-1;i++)
	{
		k=i;
		for(j=i+1;j<*pn;j++)
			if(*(p2+j)<*(p2+k)) k=j;
		if(k!=i)
		{
			tmp=*(p2+k);
			*(p2+k)=*(p2+i);
			*(p2+i)=tmp;
		}
	}
}

int combine(int *pm,int *pn,int *p1,int *p2,int *pnew)
{
	int i,j;
	for(i=0;i<*pm;i++)
		*(pnew+i)=*(p1+i);
	for(j=0;j<*pn;j++)
		*(pnew+i+j)=*(p2+j);
	return i+j;
}

void print(int *pk,int *pnew)
{
	int i;
	for(i=0;i<*pk;i++)
	{
		printf("%d",*(pnew+i));
		if(i==*pk-1) printf("\n");
		else printf(" ");
	}
}

void main()
{
	int m=0,n=0,k=0,a[10]={0},b[10]={0};
	int *pm=&m,*pn=&n,*pa=a,*pb=b;
	int New[20]={0},*pk=&k,*pnew=New;

	read(pm,pn,pa,pb);
	sort(pm,pn,pa,pb);
	*pk=combine(pm,pn,pa,pb,pnew);
	print(pk,pnew);
}


int n, m;
int a[1000], b[1000], c[2000];

void read() {
	int i;
	scanf("%d%d", &n, &m);
	for(i = 0; i < n; ++ i)
		scanf("%d", a + i);
	for(i = 0; i < m; ++ i)
		scanf("%d", b + i);
}

int cmp(const void * a, const void * b) {
	return *((int *)a) - *((int *)b);
}

void sort() {
	qsort(a, n, sizeof(int), cmp);
	qsort(b, m, sizeof(int), cmp);
}

void merge() {
	int i;
	for(i = 0; i < n; ++ i)
		c[i] = a[i];
	for(i = 0; i < m; ++ i)
		c[n + i] = b[i];
}

void output() {
	int i;
printf("%d",c[0]);
	for(i = 1; i < n + m; ++ i)
		printf(" %d", c[i]);
}

int main () {
	read();
	sort();
	merge();
	output();
	return 0;
}


void read(int s[],int n);
void arrange(int s[],int n);
void connect(int array1[],int array2[],int p1,int p2);
void print(int array[],int num);
int main()
{
	int s1[100],s2[100];
	int n1,n2;
	scanf("%d%d", &n1, &n2);
	read(s1,n1);
	read(s2,n2);
	arrange(s1,n1);
	arrange(s2,n2);
	connect(s1,s2,n1,n2);
	print(s1,n1+n2);
	return 0;
}
void read(int s[],int n)
{
	int i;
	for(i=0;i<n;i++)
	{
		scanf("%d", &s[i]);
	}
}
void arrange(int s[],int n)
{
	int i,j;
	int t;
	for(i=0;i<n-1;i++)
	{
		for(j=0;j<n-i-1;j++)
		{
			if(s[j]>s[j+1]){
				t=s[j+1];
				s[j+1]=s[j];
				s[j]=t;
			}
		}
	}
}
void connect(int array1[],int array2[],int p1,int p2)
{
	int i;

	for(i=p1;i<p1+p2;i++){
		array1[i]=array2[i-p1];
	}
}

void print(int array[],int num)
{
	int i;
	printf("%d", array[0]);
	for(i=1;i<num;i++)
	{
		printf(" %d", array[i]);
	}
}


int main ()
{
	int a, b;
	cin >> a >> b;
	void f( int x );
	f(a);
	cout << " " ;
	f(b);
	cout << endl;
}
void f( int x )
{
	int i,t ,j,str[100] = {0};
	for ( i = 1; i <= x; i++ )
		cin >> str[i];
	for ( i = 1; i <= x - 1; i++ )
	{
		for ( j = 1; j <= x- i; j++ )
			if ( str[j] > str[j+1] )
				t = str[j] , str[j] = str[ j+1 ], str[ j+1 ] = t;
	}
	for ( i = 1; i <= x - 1; i++ )
		cout << str[i] << " ";
	cout << str[x] ;
	return ;
}


int m,n;
int c[200]={0};
int a[100]={0};
int b[100]={0};
int main()
{	void A(int str[],int m);
	void B(int str3[],int str2[]);
	void D(int str[],int str2[]);

	int i,j,k;
	scanf("%d%d",&m,&n);

	D(a,b);
	A(a,m);
	A(b,n);
	B(a,b);

}
void D(int str[],int str2[])
{
int i;
for(i=0;i<m;i++)
	scanf("%d",&a[i]);
for(i=0;i<n;i++)
	scanf("%d",&b[i]);
}

void A(int str[],int m)
{
	int i,j,k;
	int temp;
	for(i=0;i<m-1;i++)
	for(j=i+1;j<m;j++)
		if(str[i]>str[j])
		{temp=str[i];str[i]=str[j];str[j]=temp;}
}
void B(int str3[],int str2[])
{	int i;
	for(i=0;i<m;i++)
		printf("%d ",str3[i]);
	for(i=0;i<n-1;i++)
		printf("%d ",str2[i]);
	printf("%d",str2[n-1]);
}


int m, n, i, j, temp;
int a[100] = {0}, b[100] = {0}, c[200] = {0};
void Read(void);
void Order(void);
void Combine(void);
void Write(void);
int main()
{
	Read();
	Order();
	Combine();
	Write();
	return 0;
}
void Read(void)
{
	scanf("%d%d",&m,&n);

	for (i = 1;i <= m;i++)
		scanf("%d",&a[i]);
	for (i = 1;i <= n;i++)
		scanf("%d",&b[i]);
}
void Order(void)
{
	for (i = 1;i <= m;i++)
		for (j = i + 1;j <= m;j++)
		{
			if (a[i] > a[j])
			{
				temp = a[i];
				a[i] = a[j];
				a[j] = temp;
			}
		}
	for (i = 1;i <= n;i++)
		for (j = i + 1;j <= n;j++)
		{
			if (b[i] > b[j])
			{
				temp = b[i];
				b[i] = b[j];
				b[j] = temp;
			}
		}
}
void Combine(void)
{
	for (i = 1;i <= m;i++)
		c[i] = a[i];
	for (i = 1;i <= n;i++)
		c[i + m] = b[i];
}
void Write(void)
{
	printf("%d",c[1]);
	for (i = 2;i <= m + n;i++)
	printf(" %d",c[i]);
}


int n,m,a[1000],b[100];

void scan(int *p1,int l1,int *p2,int l2)
{
	int i;
	scanf("%d%d",&l1,&l2);
	for(i=0;i<l1;i++)
		scanf("%d",&p1[i]);
	for(i=0;i<l2;i++)
		scanf("%d",&p2[i]);
}

void paixu(int *p,int l)
{
	int t,i,j;
	for(i=1;i<l;i++)
		for(j=0;j<l-i;j++)
			if(p[j]>p[j+1])
			{
				t=p[j];
				p[j]=p[j+1];
				p[j+1]=t;
			}
}

void hebing(int *p1,int l1,int *p2,int l2)
{
	int i;
	for(i=l1;i<l1+l2;i++)
		p1[i]=p2[i-l1];
}

void print(int *p,int l)
{
	int i;
	for(i=0;i<l;i++)
		printf("%d%c",p[i],(i==l-1)?'\n':' ');
}

void main()
{
	int i;
	scanf("%d%d",&n,&m);
	for(i=0;i<n;i++)
		scanf("%d",&a[i]);
	for(i=0;i<m;i++)
		scanf("%d",&b[i]);
	paixu(a,n);
	paixu(b,m);
	hebing(a,n,b,m);
	print(a,m+n);
}


int main()
{
	void read(int a[100],int b[100],int m,int n);
	void bubble(int a[100],int m);
	void print(int a[100],int b[100],int m,int n);
	int m,n,a[100],b[100];
	scanf("%d%d",&m,&n);
	read(a,b,m,n);
	bubble(a,m);
	bubble(b,n);
	print(a,b,m,n);
	return 0;
}

void read(int a[100],int b[100],int m,int n)
{
	int i;
	for(i=0;i<m;i++)
		scanf("%d",&a[i]);
	for(i=0;i<n;i++)
		scanf("%d",&b[i]);
}
void bubble(int a[100],int m)
{
	int i,j,t;
	for(i=0;i<m;i++)
	{
		for(j=0;j<m-1;j++)
		{
			if(a[j]>a[j+1])
			{
				t=a[j];
				a[j]=a[j+1];
				a[j+1]=t;
			}
		}
	}
}

void print(int a[100],int b[100],int m,int n)
{
	int i;
	for(i=0;i<m;i++)
	{
		printf("%d ",a[i]);
	}
	for(i=0;i<n-1;i++)
	{
		printf("%d ",b[i]);
	}
	printf("%d\n",b[n-1]);
}


void input(int array[],int n)
{int i;
for(i=0;i<=n-2;i++)
{
 scanf("%d ",&array[i]);}
 scanf("%d\n",&array[n-1]);}
void order(int array[],int n)
{int i,o,e;
 for(i=0;i<=n-2;i++)
{for(o=i+1;o<=n-1;o++)
 {if(array[i]>array[o]){e=array[i];array[i]=array[o];array[o]=e;}
}}}
void output(int array[],int n)
{int i;
for(i=0;i<=n-2;i++)
{printf("%d ",array[i]);}
 printf("%d",array[n-1]);}
void main()
{int a[20],b[20],q,w;
 scanf("%d %d\n",&q,&w);
 input(a,q);
 input(b,w);
 order(a,q);order(b,w);
 output(a,q);printf(" ");output(b,w);}


void main()
{
int i;
int aa[100],bb[100],cc[200],la,lb;
void scan(int a[],int la,int b[],int lb);
void sort(int a[],int n);
void combine(int a[],int la,int b[],int lb,int c[]);

scanf("%d %d",&la,&lb);

scan(aa,la,bb,lb);
sort(aa,la);
sort(bb,lb);

combine(aa,la,bb,lb,cc);

}

void scan(int a[],int la,int b[],int lb)
{
	int i;

	for(i=0;i<la;i++)
		scanf("%d",&a[i]);
	for(i=0;i<lb;i++)
		scanf("%d",&b[i]);

}

void sort(int a[],int n)
{
	int i,j,k,temp;

  for(i=0;i<n-1;i++)
  {
  k=i;
  for(j=i+1;j<n;j++)
   if(a[j]<a[k]) k=j;
  temp=a[k];a[k]=a[i];a[i]=temp;

  }

}

void combine(int a[],int la,int b[],int lb,int c[])
{
int i;

for(i=0;i<lb;i++)
  a[la+i]=b[i];
for(i=0;i<la+lb;i++)
c[i]=a[i];
printf("%d",c[0]);
for(i=1;i<la+lb;i++)
printf(" %d",c[i]);
}


const int mmax=1000;
int a[mmax];//??????????????
int b[mmax];
int m,n;
void mread();
void msort();
void mcomb();
void mdisp();
int main()
{
	mread();
	msort();
	mcomb();
	mdisp();
	return 0;
}
void mread(){
	cin >> m >>n;//??
	for(int i=0;i<m;i++)
		cin >> a[i];
	for(int i=0;i<n;i++)
		cin >> b[i];
}
void msort(){
	int t;
	for(int i=0;i<m;i++)//????
		for(int j=m-1;j>i;j--)
			if(a[j-1]>a[j])
			{
				t=a[j-1];
				a[j-1]=a[j];
				a[j]=t;
			}
	for(int i=0;i<n;i++)
		for(int j=n-1;j>i;j--)
			if(b[j-1]>b[j])
			{
				t=b[j-1];
				b[j-1]=b[j];
				b[j]=t;
			}
}
void mcomb()
{
	for(int i=0;i<n;i++)//??
		a[i+m]=b[i];
}
void mdisp()
{
	for(int i=0;i<m+n;i++)//???????
	{
		if(i!=0)
			cout << ' ';
		cout << a[i];
	}
}


/*
 * functions.cpp
 *
 *  Created on: 2013-11-29
 *      Author: 111
 */
int str1[50]={1},str2[50]={1};
int length1,length2;
void input_string(void)
{
	cin >> length1 >> length2;
	for (int i=0;i<length1;i++)
		cin >> str1[i];
	for (int i=0;i<length2;i++)
		cin >> str2[i];
}
void rank_string(void)
{
	int temp;
	for (int i=0;i<length1-1;i++)
		for (int j=i+1;j<length1;j++)
			if (str1[i]>str1[j])
			{
			    temp = str1[i];
			    str1[i] = str1[j];
			    str1[j] = temp;
			}
	for (int i=0;i<length2-1;i++)
	    for(int j=i+1;j<length2;j++)
	    	if (str2[i]>str2[j])
	    	{
	    		temp = str2[i];
	    		str2[i] = str2[j];
	    		str2[j] = temp;
	    	}
}
void combine_string(void)
{
	for (int i=length1;i<length1+length2;i++)
		str1[i] = str2[i-length1];
}
void output_string(void)
{
	cout << str1[0];
	for (int i=1;i<length1+length2;i++)
		cout << ' ' << str1[i];
}
int main()
{
	input_string();
	rank_string();
	combine_string();
	output_string();
	return 0;
}


void in(int a[],int n)
{
    int i;
        for(i=0;i<n;i++)
        scanf("%d",&a[i]);
}
void bubblesort(int a[],int n)
{
    int i,j,t;
    for(i=0;i<n;i++)
        for(j=n-1;j>i;j--)
            if(a[j-1]>a[j])
            {t=a[j];
                a[j]=a[j-1];
                a[j-1]=t;}

}

void strc(int a[],int b[],int c[],int n1,int n2)
{
    int i;
    for(i=0;i<n1;i++)
        c[i]=a[i];
    for(i=n1;i<n1+n2;i++)
        c[i]=b[i-n1];
}
void print(int c[],int n1,int n2)
{
    int i;
    for(i=0;i<n1+n2-1;i++)
        printf("%d ",c[i]);
    printf("%d",c[n1+n2-1]);
    }

main()
{
    int i,n1,n2,a[100],b[100],c[200];
    scanf("%d %d",&n1,&n2);
    in(a,n1);
    in(b,n2);

    bubblesort(a,n1);
    bubblesort(b,n2);
    strc(a, b, c, n1, n2);
    print(c, n1, n2);

}


void main()
{
	void read(int x[],int y[],int a,int b);
	void change(int x[],int y[],int a,int b);
	void combine(int x[],int y[],int a,int b);
	int x[10],y[10],a,b;
	scanf("%d %d",&a,&b);
	read(x,y,a,b);
	change(x,y,a,b);
	combine(x,y,a,b);
}
void read(int x[],int y[],int a,int b)
{
	int i;
	char c;
	for(i=1;i<=a;i++)
		scanf("%d%c",&x[i],&c);
	for(i=1;i<=b;i++)
		scanf("%d%c",&y[i],&c);
}
void change(int x[],int y[],int a,int b)
{
	int i,j,t;
	for(i=1;i<=a;i++)
		for(j=1;j<a+1-i;j++)
		{
			if(x[j]>x[j+1])
			{
				t=x[j];
				x[j]=x[j+1];
				x[j+1]=t;
			}
		}
	for(i=1;i<=b;i++)
		for(j=1;j<b+1-i;j++)
		{
			if(y[j]>y[j+1])
			{
				t=y[j];
				y[j]=y[j+1];
				y[j+1]=t;
			}
		}
}
void combine(int x[],int y[],int a,int b)
{
	int i;
	printf("%d",x[1]);
	for(i=2;i<=a;i++)
		printf(" %d",x[i]);
	for(i=1;i<=b;i++)
		printf(" %d",y[i]);
}


void f(int str[],int m)
{int i,j,k;
	for(j=0;j<m;j++)
	for(i=0;i<m-1;i++)
		if(str[i]>str[i+1])
		{k=str[i];
		str[i]=str[i+1];
		str[i+1]=k;}
}

void g(int a[],int b[],int ma,int mb)
{int i;
	for(i=ma;i<(ma+mb);i++)
a[i]=b[i-ma];
}

void main()
{int ma,mb,i;
int a[8888],b[8888];
scanf("%d %d",&ma,&mb);
for(i=0;i<ma;i++)
scanf("%d",&a[i]);
for(i=0;i<mb;i++)
scanf("%d",&b[i]);
f(a,ma);
f(b,mb);
g(a,b,ma,mb);
for(i=0;i<=(ma+mb-1);i++)
{if(i!=0)
printf(" ");
printf("%d",a[i]);}
}


int main()
{
	int a[100],b[100],m,n;
	void read(int a[],int n);
	void sort(int a[],int n);
	void print(int a[],int n);
	scanf("%d%d",&m,&n);
	read(a,m);read(b,n);
	sort(a,m);sort(b,n);
	print(a,m);printf(" ");print(b,n);
}
void read(int a[],int n)
{
	int i;
	for(i=0;i<n;i++)
	scanf("%d",&a[i]);
}
void sort(int a[],int n)
{	int i,j,t;
    for(i=n-1;i>0;i--)
		for(j=0;j<i;j++)
			if(a[j]>a[j+1])
			{t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
void print(int a[],int n)
	{int i;
	for(i=0;;i++)
		{printf("%d",a[i]);
	     n--;
	     if(n)printf(" ");
		 else break;}}


/* Name      : ?????
 * Version   : 1.0
 * Date      : 2012-11-18
 * New       : Null
 * Func&Feat :
 * State     : Design
 */
void readin(int ma,int mb,int a[],int b[])
{
    for(int i=0;i<ma;i++)cin>>a[i];
    for(int i=0;i<mb;i++)cin>>b[i];
}
void rearange(int ma,int mb,int a[100],int b[100])
{
    int temp;
    for(int i=0;i<ma;i++)
        for(int j=0;j<ma-1;j++)
            if(a[j]>a[j+1])
            {
                int temp;
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
    for(int i=0;i<mb;i++)
        for(int j=0;j<mb-1;j++)
            if(b[j]>b[j+1])
            {
                int temp=b[j];
                b[j]=b[j+1];
                b[j+1]=temp;
            }
}
int printout(int ma,int mb,int a[],int b[])
{
    for(int i=0;i<ma;i++)cout<<a[i]<<' ';
    for(int i=0;i<mb-1;i++)cout<<b[i]<<' ';
    cout<<b[mb-1];
}
int main()
{
    int ma[1],mb[1],a[100]={0},b[100]={0},c[100]={0};
    readin(1,1,ma,mb);
    readin(ma[0],mb[0],a,b);
    rearange(ma[0],mb[0],a,b);
    printout(ma[0],mb[0],a,b);
    return 0;
}


int Compare(const void *elem1, const void *elem2)
{
    return *((int *)(elem1)) - *((int *)(elem2));
}
int main()
{
	int n1,n2;
	int*a1,*a2;
	int i1,i2,i3,i4;
	scanf("%d %d",&n1,&n2);
	a1=(int*)malloc(sizeof(int)*n1);
	a2=(int*)malloc(sizeof(int)*n2);
	for(i1=0;i1<n1;i1++)
	{
		scanf("%d",a1+i1);
	}
	for(i2=0;i2<n2;i2++)
	{
		scanf("%d",a2+i2);
	}
	qsort(a1,n1,sizeof(int),Compare);
	qsort(a2,n2,sizeof(int),Compare);
	for(i3=0;i3<n1;i3++)
	{
		printf("%d ",a1[i3]);
	}
	for(i4=0;i4<n2-1;i4++)
	{
		printf("%d ",a2[i4]);
	}
	printf("%d",a2[n2-1]);
}


void main ()
{
    void f(int array[],int k);
    void g(int c[],int d[],int o,int p);
    int n,m,a[200],b[100],i,j,e[200],z;
    scanf("%d %d",&n,&m);
    for(i=0;i<=n-1;i++)
    {
        scanf("%d",&a[i]);
    }
    for(j=0;j<=m-1;j++)
    {
        scanf("%d",&b[j]);
    }
    f(a,n);
    f(b,m);
    g(a,b,n,m);
    for(z=0;z<n+m-1;z++)
    {
        printf("%d ",a[z]);
    }
    printf("%d",a[n+m-1]);
}
void f(int array[],int k)
{
    int r,s,t;
    for(r=0;r<k-1;r++)
       for(s=0;s<k-1-r;s++)
          if(array[s]>array[s+1])
          {
              t=array[s];array[s]=array[s+1];array[s+1]=t;
          }
}
void g(int c[],int d[],int o,int p)
{
    int u;
    for(u=o;u<=o+p-1;u++)
    {
        c[u]=d[u-o];
    }
}


int n,m ,a[100],b[100];

void  sort(int c[],int s)
{
    int i,j,k;
    for(i=0;i<s-1;i++)
      for(j=0;j<s-1-i;j++)
       if(c[j]>c[j+1])
      {
       k=c[j+1];
       c[j+1]=c[j];
       c[j]=k;
       }
}

void  hebing(int d[],int e[],int x,int y)
{
    int i;
    for(i=0;i<x;i++)
    printf("%d ",d[i]);
    for(i=0;i<y-1;i++)
    printf("%d ",e[i]);
    printf("%d",e[y-1]);
}
int   main()
{
    int i,j;
   scanf("%d %d",&n,&m);
   for(i=0;i<n;i++)
   scanf("%d",&a[i]);
   for(j=0;j<m;j++)
   scanf("%d",&b[j]);
    sort(a,n);
    sort(b,m);
    hebing(a,b,n,m);
    return 0;
}


void a(int ,int );
void b(int [],int [],int ,int );
void c(int [],int [],int ,int );
void d(int [],int );
int main()
{
	int n1,n2;
	cin>>n1>>n2;
	a(n1,n2);
	return 0;
}
void a(int n1,int n2)
{
	int num1[101],num2[101],i;
	for(i=1;i<=n1;i++)
	{
		cin>>num1[i];
	}
	for(i=1;i<=n2;i++) cin>>num2[i];
	b(num1,num2,n1,n2);
}
void b(int num1[],int num2[],int n1,int n2)
{
	int i,j,mid;
	for(i=1;i<=n1-1;i++)
	{
		for(j=1;j<=n1-i;j++)
		{
			if(num1[j]>num1[j+1])
			{
				mid=num1[j+1];
				num1[j+1]=num1[j];
				num1[j]=mid;
			}
		}
	}
	for(i=1;i<=n2-1;i++)
	{
		for(j=1;j<=n2-i;j++)
		{
			if(num2[j]>num2[j+1])
			{
				mid=num2[j+1];
				num2[j+1]=num2[j];
				num2[j]=mid;
			}
		}
	}
	c(num1,num2,n1,n2);
}
void c(int num1[],int num2[],int n1,int n2)
{
	int num[201],i,j;
	for(i=1;i<=n1;i++)
	{
		num[i]=num1[i];
	}
	for(i=n1+1;i<=n1+n2;i++)
	{
		num[i]=num2[i-n1];
	}
	d(num,n1+n2);
}
void d(int num[],int n)
{
	int i;
	for(i=1;i<=n-1;i++)
	{
		cout<<num[i]<<" ";
	}
	cout<<num[n];
}