semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
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 main ()
{
	int l1,l2,i,j,a,k,m;
	char sz[256],s1[256],r[256],zj[256];
	gets (sz);
	gets (s1);
	gets (r);
	l1=strlen(sz);
	l2=strlen(s1);
	for (i=0;i<l1;i++)
	{
		if (sz[i]==s1[0])
		{
			a=0;
			for (j=0;j<l2;j++)
			{
				if (s1[j]==sz[i+j])
					a=a+1;
			}
			if (a==l2)
			{
                          for (m=0;m<i;m++)
                                 printf ("%c",sz[m]);
                          printf ("%s",r);
                          for (m=i+l2;m<l1;m++)
                          printf ("%c",sz[m]);
                          k=1;
				
			}
		}
		if (k==1) break;
	}
        if (k!=1) printf ("%s",sz);

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

}
void main()
{
	int n,m,z=1,l=0,flag=0;
	int i=0,k=0,num=0,j=0;
	char s[256]={0},w[256]={0},mid[256]={0},out[256]={0},p[256]={0};
	gets(w);
	gets(s);
	gets(p);
	n=strlen(s);
	m=strlen(w);
	for(;l<m-1;)
	{
		for(i=0;i<n;i++,k++)
		{
			mid[i]=w[k];	
		}
		z++;
		k=z;
		num++;
		if(strcmp(mid,s)==0)
		{
			flag=1;
			break;
		}
		l++;
	}

	if(flag==0)
	{
		puts(w);
	}
	else
	{
		j=num;
		for(i=0;i<n;i++,j++)
		{
			w[j]=p[i];
		}
		puts(w);
	}
}
int main()
{
	char a[256], b[256], c[256];
	scanf("%s%s%s",a, b, c);
	int i, l, k;
	int m=0, n=0;
	for(;;)
	{
		for(k=m;;k++)
		{
			if(a[k]==b[0])
			{
				n=1;
				break;
			}
			if(a[k]=='\0')
			{
				n=2;
				break;
			}
		}
		if(n==2) break;
		else
		{
			m=k+1;
			for(l=1;;l++)
			{
				if(b[l]=='\0')
				{
					n=3;
					break;
				}
				if(a[k+l]!=b[l])
				{
					n=4;
					break;
				}
			}
			if(n==3) break;
		}
	}

	if(n==2) printf("%s",a);
	else
	{
		for(i=0;;i++)
		{
			a[k+i]=a[k+i+strlen(b)];
			if(a[k+i+strlen(b)]=='\0') break;
		}
		for(i=strlen(c);i>0;i--)
		{
			int x=strlen(a);
			for(l=0;x-l>=k;l++)
			{
				a[x+1-l]=a[x-l];
			}
			a[k]=c[i-1];
		}

		printf("%s",a);
	}
	return 0;
}
int main(){
	int i,j,h=0;
	char a[100],b[100],c[100];
	scanf("%s%s%s",a,b,c);
	for(i=0;i<strlen(a);i++){
		if(a[i]==b[0]){
			h=0;
			for(j=0;j<strlen(b);j++){
				if(a[j+i]==b[j]){
					h++;
				}
			}
			if(h==strlen(b)){
				for(j=0;j<strlen(c);j++){
					a[j+i]=c[j];
				}
				break;
			}
		}
	}
	printf("%s\n",a);
	return 0;
}
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;
}
int main()
{
	char s[256],w[256],r[256];
	int l1,l2,i,j,count,k=0;
	scanf("%s%s%s",w,s,r);
	l1=strlen(s);
	l2=strlen(w);
	for (i=0;i<l2-l1+1;i++)
	{
		if (w[i]==s[0])
		{
			count=1;
			for(j=i+1;j<i+l1;j++)
			{
				if (w[j]!=s[j-i])
					break;
				else count++;
			}
			if (count==l1) 
			{
				k=1;
				break;
			}
		}
	}
	if(k==1)
	{
	for (j=i;j<i+l1;j++)
	{
		w[j]=r[j-i];
	}
	}
	printf("%s\n",w);
}
//
//  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 a[256],b[256],c[256];
	int i,m,k,N,j,p,n=0;
	gets(a);
	gets(b);
	gets(c);
	N=strlen(a)-strlen(b);
	p=strlen(b);
	for(k=0;k<=N;k++)
	{
		m=0;
		for(i=0;i<256;i++)
		{
			if(a[i+k]==b[i])
			{
				m++;
			}
			if(a[i+k]=='\0')
			{
				break;
			}
			if(b[i]=='\0')
			{
				break;
			}
		    if(m>=p-1)
			{
		 	   break;
			}
		}
	
		
	    if(m>=p-1)
		{
		    for(j=0;j<k;j++){
			    printf("%c",a[j]);
			}
		    for(j=0;c[j]!='\0';j++){
			    printf("%c",c[j]);
			}
		    for(j=k+m+1;a[j]!='\0';j++){
			    printf("%c",a[j]);
			}
		     printf("\0");
		     n=1;
		}
	    if(n==1)
		   break;
	}
	
    if(n==0)
	{
		printf("%s",a);
	}
	return 0;
}
int main()
{
    char s[256],a[256],b[256];
    int i,n,f,t,j,k,m,l,p,q=0,o;
    gets(s);
    gets(a);
    gets(b);
    p=strlen(s);
    m=strlen(a);
    n=strlen(b);
    for(i=0;s[i]!='\0';i++){
       if(s[i]==a[0]){
       f=0;
          for(j=0;j<m;j++){
             if(s[j+i]!=a[j])  f=1;
             }
          if(f==0){
          t=i;
          if(t!=0){
             for(k=0;k<t;k++){
                printf("%c",s[k]);
                q=1;
                }
             }
          for(l=0;l<n;l++){
             printf("%c",b[l]);
             }
          if(s[m+t]!='\0'){
             for(k=m+t;k<p;k++){
                printf("%c",s[k]);
                }
                printf('\0');
                q=1;
             }
          if(q==1)  break;
       }
       if(q==1)  break;
       }
       if(q==1)  break;
       }
       if(q==0)  printf("%s",s);
       scanf("%d",&o);
    return 0;
}
int main()
{
   char zf1[257],zf2[257],zf3[257];
   int len1,len2,len3,i,k,t,m,fa=0;
   scanf("%s%s%s",zf1,zf2,zf3);
   len1=strlen(zf1);
   len2=strlen(zf2);
   len3=strlen(zf3);
   for(i=0;i<len1;i++)
   {
       for(k=0;k<len2;k++)
       {
           if(zf2[k]!=zf1[i+k])
           {
                t=0;
                break;
            }
            else
           {
                t++;
            }
       }
       if(t==len2)
       {
           m=i;
           fa=1;
       }
        if(fa==1)
        {
         break;
        }
   }
   if(fa==1)
   {
    for(i=0;i<m;i++)
    {
     printf("%c",zf1[i]);
    }
    printf("%s",zf3);
    for(i=m+len2;i<len1;i++) 
    {
     printf("%c",zf1[i]);
    }
   }
   if(fa==0)
   {
       printf("%s",zf1);
   }
   return 0;
}
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);
}
//???????????????????????? ??? 1200012848 20121116

//??
int A[100];
int An;
int B[100];
int Bn;

void getAn()    //?????????
{
    cin>>An;
}

void getBn()    //?????????
{
    cin>>Bn;
}

void sortA()   //????An??
{
    for(int i=0;i<An;i++)
    {
        cin>>A[i];
    }

    sort(A,A+An);
}

void sortB()   //????Bn??
{
    for(int i=0;i<Bn;i++)
    {
        cin>>B[i];
    }

    sort(B,B+Bn);
}

void OutA()
{
    for(int i=0;i<An;i++)
    {
        cout<<A[i]<<" ";
    }
}

void OutB()
{
    for(int i=0;i<Bn;i++)
    {
        cout<<B[i];
        if(i!=Bn-1) cout<<' ';
    }
}

int main()
{
    getAn();
    getBn();
    sortA();
    sortB();
    OutA();
    OutB();
    return 0;
}
int la,lb,a[1000],b[1000],c[2000];
void duqu()
{
     cin>>la>>lb;
     for(int i=0;i<la;i++) cin>>a[i];
     for(int j=0;j<lb;j++) cin>>b[j];
}            //?????? 
void paixu()
{
     int i,j,temp;
     for(i=0;i<la-1;i++)
        for(j=i+1;j<la;j++)
           if (a[i]>a[j])
           {
                         temp=a[i];
                         a[i]=a[j];
                         a[j]=temp;
           }
     for(i=0;i<lb-1;i++)
        for(j=i+1;j<lb;j++)
           if (b[i]>b[j])
           {
                         temp=b[i];
                         b[i]=b[j];
                         b[j]=temp;
           }
}              //??????????? 
void hebing()
{
     for (int i=0;i<la;i++) c[i]=a[i];
     for (int j=0;j<lb;j++) c[la+j]=b[j];
}               //????????????c? 
void shuchu()
{
     for (int i=0;i<la+lb;i++)
     {
         cout<<c[i];
         if (i!=la+lb-1) cout<<' ';
     }
}       //??c 
int main()
{
    duqu();
    paixu();
    hebing();
    shuchu();        //?????? 
    return 0; 
}
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 k,n1,n2,a[100],b[100],flag=0;
paixu(int m,int x[])
{
	int i,j;
	for(i=1;i<=m;i++)
	{
		for(j=1;j<=m-1;j++)
		{
			if(x[j]>x[j+1])
			{
				x[j]=x[j]+x[j+1];
				x[j+1]=x[j]-x[j+1];
				x[j]=x[j]-x[j+1];
			}
		}
	}
}
output(int m,int x[])
{
	int i;
	for(i=1;i<=m;i++)
	{
		if(flag)printf(" ");
		printf("%d",x[i]);
		flag=1;
	}
}
main()
{
	scanf("%d%d",&n1,&n2);
for(k=1;k<=n1;k++)scanf("%d",&a[k]);
for(k=1;k<=n2;k++)scanf("%d",&b[k]);
	paixu(n1,a);
	paixu(n2,b);
	output(n1,a);
	output(n2,b);
}
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;
}
void main()
{
	int n,m,i,a[1000],b,k=0,tmp,j;
	scanf("%d%d",&n,&m);
	for (i=1;i<=n+m;i++)
	{
		scanf("%d",&a[i]);
	}
	for (i=1;i<=n+1;i++)
		for (j=1;j<=n-1;j++)
			if (a[j]>a[j+1])
		    {
				tmp=a[j];
				a[j]=a[j+1];
				a[j+1]=tmp;
		    }
	for (i=1;i<=m+1;i++)
		for (j=n+1;j<=n+m-1;j++)
			if (a[j]>a[j+1])
		    {
				tmp=a[j];
				a[j]=a[j+1];
				a[j+1]=tmp;
		    }
    printf("%d",a[1]);
	for (i=2;i<=n+m;i++)
		printf(" %d",a[i]);
}
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;
}
/*
 * ????0908.cpp
 * ??????
 * ?????2012-11-23
 * ???????????
 */



void program(void){
	int m,n,i,j;
	cin>>m>>n;
	const int M=n,N=n;
	int a[M],b[N];
	for(i=0;i<m;++i)cin>>a[i];
	for(i=0;i<n;++i)cin>>b[i];
	for(i=0;i<m;++i)for(j=i+1;j<m;++j)if(a[i]>a[j]){
		a[i]=a[i]+a[j];
		a[j]=a[i]-a[j];
		a[i]=a[i]-a[j];
	}
	for(i=0;i<n;++i)for(j=i+1;j<n;++j)if(b[i]>b[j]){
			b[i]=b[i]+b[j];
			b[j]=b[i]-b[j];
			b[i]=b[i]-b[j];
		}
	cout<<a[0];
	for(i=1;i<m;++i)cout<<' '<<a[i];
	for(i=0;i<n;++i)cout<<' '<<b[i];
}

int main(){
	program();
	return 0;
}
int main()
{
	long i,j,n,m,x,p=0;
	int a[100001]={0};
	scanf("%d%d",&n,&m);
	for(i=1;i<=n;i++)
	{scanf("%d",&x);a[x]++;}
	for(i=0;i<=100000;i++)
	{
		for(j=1;j<=a[i];j++)
			if(p==0){printf("%d",i);p=1;}
			else printf(" %d",i);
	    a[i]=0;
	}
	for(i=1;i<=m;i++)
	{scanf("%d",&x);a[x]=1;}
	for(i=0;i<=100000;i++)
	{
		for(j=1;j<=a[i];j++)
			printf(" %d",i);
	    a[i]=0;
	}
    return 0;
}
int a[1000]={0},b[1000]={0};
void input()
{
	int i,n,m;
	cin >>n>>m;
	for (i=1;i<=n;i++)
		cin >>a[i];
	for (i=1;i<=m;i++)
		cin >>b[i];
	a[0]=n;b[0]=m;
}//???????????????????0???
void sort(int a[])
{
	int i,j;
	for (i=1;i<a[0];i++)
		for (j=1;j<=a[0]-i;j++)
			if (a[j]>a[j+1])
			{
				int temp;
				temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}
}//????
void output()
{
	int i;
	for (i=1;i<=a[0];i++)
		cout <<a[i]<<' ';
	for (i=1;i<=b[0]-1;i++)
		cout <<b[i]<<' ';
	cout <<b[b[0]];
}//?? 
int main()
{
	input();
	sort(a);
	sort(b);
	output();
	return 0;
}
int a[20000],b[10000],n,m;
void f1(int a[],int n)
{
	int i;
	for(i=0;i<n;i++)
		scanf("%d",&a[i]);
}
void f2(int a[],int n)
{
	int i,j;
	for(j=1;j<=n;j++)
	{
		for(i=0;i<n-j;i++)
		{
			if(a[i]>a[i+1])
			{
				int t;
				t=a[i];
				a[i]=a[i+1];
				a[i+1]=t;
			}
		}
	}
}
void f3(int a[],int b[],int n,int m)
{
	int i;
	for(i=0;i<m;i++)
		a[n+i]=b[i];
	printf("%d",a[0]);
	for(i=1;i<m+n;i++)
		printf(" %d",a[i]);
}
void main()
{
	scanf("%d %d",&n,&m);
	f1(a,n);
	f1(b,m);
	f2(a,n);
	f2(b,m);
	f3(a,b,n,m);
}
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]];
}
void a(void)
{
	int A[100],B[100],C[200],i,j,k,m,n;
	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]);
	}
	for(i=1;i<m;i++)
	{
		for(j=0;j<m-i;j++)
		{
			if(A[j]>A[j+1])
			{
				k=A[j+1];
				A[j+1]=A[j];
				A[j]=k;
			}
		}
	}
    for(i=1;i<n;i++)
	{
		for(j=0;j<n-i;j++)
		{
			if(B[j]>B[j+1])
			{
				k=B[j+1];
				B[j+1]=B[j];
				B[j]=k;
			}
		}
	}
    for(i=0;i<m;i++)
	{
		C[i]=A[i];
	}
	for(i=0;i<n;i++)
	{
		C[m+i]=B[i];
	}
    for(i=0;i<m+n;i++)
	{
		if(i==0)
		{
			printf("%d",C[i]);
		}
		else 
		{
			printf(" %d",C[i]);
		}
	}
}
void main()
{
	a();
}
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;
}
int num1[1000],num2[1000],num[2000],n1,n2;
void dr()
{
    cin>>n1>>n2;
    int i;
    for(i=0;i<n1;i++)
    cin>>num1[i];
    for(i=0;i<n2;i++)
    cin>>num2[i];
}
int px()
{
    int i,j,tem;
    for(i=0;i<n1;i++)
    {
        for(j=i+1;j<n1;j++)
        {
            if(num1[j]<num1[i])
            {
                tem=num1[i];
                num1[i]=num1[j];
                num1[j]=tem;
            }
        }
    }
    for(i=0;i<n2;i++)
    {
        for(j=i+1;j<n2;j++)
        {
            if(num2[j]<num2[i])
            {
                tem=num2[i];
                num2[i]=num2[j];
                num2[j]=tem;
            }
        }
    }
}
int gb()
{
    int i;
    for(i=0;i<n1;i++)
    num[i]=num1[i];
    for(i=n1;i<n1+n2;i++)
    num[i]=num2[i-n1];
}
int dy()
{
    cout<<num[0];
    int i;
    for(i=1;i<n1+n2;i++)
    cout<<' '<<num[i];
}
int main()
{
    dr();
    px();
    gb();
    dy();
}
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;
}