void paixu(int str[],int n1);
void hebing(int str1[],int str2[],int n1,int n2);
void shuchu(int str[],int n);
void main()
{
	int n1,n2;
	int a[100],b[100];
	scanf("%d%d",&n1,&n2);
	paixu(a,n1);
	paixu(b,n2);
	hebing(a,b,n1,n2);
	shuchu(a,n1+n2);
}
void paixu(int str[],int n)
{
	int i,p,m;
	for(i=0;i<n;i++)
		scanf("%d",&str[i]);
	for(p=1;p<n;p++)
		for(i=0;i<=n-1-p;i++)
		  if(str[i]>str[i+1])
		  {
			  m=str[i];
			  str[i]=str[i+1];
			  str[i+1]=m;
		  }
}
void hebing(int str1[],int str2[],int n1,int n2)
{
    int i;
	for(i=n1;i<n1+n2;i++)
		str1[i]=str2[i-n1];
}
void shuchu(int str[],int n)
{
	int i;
	printf("%d",str[0]);
	for(i=1;i<n;i++)
		printf(" %d",str[i]);
}


int*order(int*p,int k)
{
       int i,j;
       int t=0;
       p=(int*)malloc(k*sizeof(int));
       for(i=0;i<k;i++)
       {
           scanf("%d",&p[i]);
       }
       for(i=k-1;i>=0;i--)
       {
           for(j=0;j<i;j++)
               {
                   if(p[j]>p[j+1])
                   {
                    t=p[j+1];
                    p[j+1]=p[j];
                    p[j]=t;
                   }
               }
       }
       return p;
}
int*merge(int*p,int*q,int m,int n)
{
       int i;
       int*u=(int*)malloc((m+n)*sizeof(int));
       for(i=0;i<m;i++)
       {
            u[i]=p[i];
       }
       for(i=0;i<n;i++)
       {
            u[m+i]=q[i];
       }
       return u;
}
main()
{
      int m,n;
      scanf("%d %d",&m,&n);
      int*a=(int*)malloc(m*sizeof(int));
      int*b=(int*)malloc(n*sizeof(int));
      a=order(a,m);
      b=order(b,n);
      int*p=merge(a,b,m,n);
      printf("%d",p[0]);
      for(int i=1;i<m+n;i++)
      {
        printf(" %d",p[i]);
      }
}


int compare(const void * elem1, const void * elem2)
{
      return (*(int *)elem1) - (*(int *) elem2);
}
main()
{
      int n,m;
      scanf("%d %d",&n,&m);
      int a[n],b[m];
      int i,j;
      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),compare);
      qsort(b,m,sizeof(int),compare);
      int c[n+m];
      for(i=0;i<n;i++)
      {
                        c[i]=a[i];}
      for(i=n,j=0;i<m+n;i++,j++)
      {
                      c[i]=b[j];}
      for(i=0;i<n+m-1;i++)
       {

                        printf("%d ",c[i]);}
                        printf("%d\n",c[i]);

}


int shuzu1[10]={0},shuzu2[10]={0};
int n1,n2;
void input()//??
{
	int i;
	cin>>n1>>n2;
	for (i=0;i<n1;i++)cin>>shuzu1[i];
	for (i=0;i<n2;i++)cin>>shuzu2[i];
}

void sort(int shuzu[],int bg,int ed)//???????????
{
	int bg1=bg,ed1=ed,key=shuzu[bg];
	if (bg1!=ed1)
	{
		while(bg1!=ed1)
		{
			for (;shuzu[ed1]>=key&&bg1!=ed1;ed1--) ;
			shuzu[bg1]=shuzu[ed1];
			if(bg1==ed1) break;
			bg1++;
			for (;shuzu[bg1]<=key&&bg1!=ed1;bg1++) ;
			shuzu[ed1]=shuzu[bg1];
			if(bg1==ed1) break;
			ed1--;
		}
		shuzu[bg1]=key;
		if(bg1!=bg) sort (shuzu,bg,bg1-1);
		if(ed1!=ed) sort (shuzu,ed1+1,ed);
	}
}
void sort1()//????
{
	sort(shuzu1,0,n1-1);//?2???????
	sort(shuzu2,0,n2-1);
}
void link()
{
	int lk;//??2??
	for (lk=0;lk<n2;lk++) shuzu1[n1+lk]=shuzu2[lk];
}
void output()//????
{
	int i;
	for (i=0;i<n1+n2;i++)
	{
		if(i) cout<<' ';//???????????
		cout<<shuzu1[i];
	}
}
int main()
{
	input();
	sort1();
	link();
	output();
	return 0;
}


void input(int p,int q,int *num1,int *num2)
{
     int i;
     for(i=0;i<p;i++) scanf("%d",num1+i);
     for(i=0;i<q;i++) scanf("%d",num2+i);
}
void sort(int p,int q,int *num1,int *num2)
{
     int i,j,t;
     for(i=0;i<p;i++)
     {
          for(j=0;j<p-1-i;j++)
          {
               if(num1[j]>num1[j+1])
               {
                    t=num1[j];
                    num1[j]=num1[j+1];
                    num1[j+1]=t;
               }
          }
     }
     for(i=0;i<q;i++)
     {
          for(j=0;j<q-1-i;j++)
          {
               if(num2[j]>num2[j+1])
               {
                    t=num2[j];
                    num2[j]=num2[j+1];
                    num2[j+1]=t;
               }
          }
     }
}
void print(int p,int q,int *num1,int *num2)
{
     int i;
     printf("%d",num1[0]);
     for(i=1;i<p;i++) printf(" %d",num1[i]);
     for(i=0;i<q;i++) printf(" %d",num2[i]);
}
main ()
{
     int p,q,*num1,*num2;
     scanf("%d%d",&p,&q);
     num1=(int*)malloc(p*sizeof(int));
     num2=(int*)malloc(q*sizeof(int));
     input(p,q,num1,num2);
     sort(p,q,num1,num2);
     print(p,q,num1,num2);

}


int main()
{
	int a[100],b[100];
	int n1,n2;
	void sca(int n,int a[]);
	void pai(int n,int a[]);
	void he(int n1,int n2,int a[],int b[]);
	void pri(int n1,int n2,int a[]);
	scanf("%d%d",&n1,&n2);
	sca(n1,a);
	sca(n2,b);
	pai(n1,a);
	pai(n2,b);
	he(n1,n2,a,b);
	pri(n1,n2,a);

	return 0;

}
void sca(int n,int a[])
{
	int i;

	for(i=0;i<n;i++)
		scanf("%d",&a[i]);
}
void pai(int n,int a[])
{
	int temp,i,j,flag,min;
	for(i=0;i<n;i++)
	{
		min=a[i];
		flag=i;
		for(j=i;j<n;j++)
		{
			if(min>a[j])
			{
				min=a[j];
				flag=j;
			}
		}
		temp=a[i];
		a[i]=a[flag];
		a[flag]=temp;
	}
}
void he(int n1,int n2,int a[],int b[])
{
	int i;
	for(i=0;i<n2;i++)
		a[n1+i]=b[i];
}
void pri(int n1,int n2,int a[])
{
	int i;
	for(i=0;i<n1+n2-1;i++)
		printf("%d ",a[i]);
	printf("%d",a[n1+n2-1]);
}


void read(int a[],int m,int b[],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 order(int a[],int n)
{
	int i,j,aaa;
	for(i=0;i<n-1;i++)
	{
		for(j=0;j<n-i-1;j++)
		{
			if(a[j]>a[j+1])
			{
				aaa=a[j];
			    a[j]=a[j+1];
				a[j+1]=aaa;
			}
		}
	}

}
void combine(int a[],int m,int b[],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",b[n-1]);
}
void main()
{
	int a[100],b[100],m,n;
	scanf("%d%d",&m,&n);
	read(a,m,b,n);
	order(a,m);
	order(b,n);
	combine(a,m,b,n);
}


int m,n,a;
int str1[10000],str2[10000];
void dosomething(int str[10000],int q);

main()
{
    scanf("%d%d",&n,&m);
    for(int i=0;i<n;i++)
        scanf("%d",&str1[i]);
    for(int i=0;i<m;i++)
        scanf("%d",&str2[i]);
    dosomething(str1,n);
    dosomething(str2,m);
    for (int i=0;i<n;i++)
        printf("%d ",str1[i]);
    for (int i=0;i<m;i++)
        i==0?printf("%d",str2[i]):printf(" %d",str2[i]);

        }

void dosomething(int str[10000],int q)
{
    for (int i=0;i<q-1;i++)
        for (int j=i+1;j<q;j++)
        {
            if (str[i]>str[j])
                a=str[i],str[i]=str[j],str[j]=a;
        }
}


int scan()
{
	int m;
	scanf("%d",&m);
	return m;
}
int fuzhi(int a[],int n)
{
	int i,k;
	for(i=0;i<n;i++)
	{
		scanf("%d",&k);
		a[i]=k;
	}
	return 0;
}
int paixu(int b[],int n)
{
	int i,j,temp;
	for(i=1;i<n;i++)
	{
		for(j=0;j<n-i;j++)
		{
			if(b[j]>b[j+1])
			{
				temp=b[j];
				b[j]=b[j+1];
				b[j+1]=temp;
			}
		}
	}
	return 0;
}
int print(int c[],int d[],int m3,int m4)
{
	int i=0;
	for(i=0;i<m3;i++)
	{
		printf("%d ",c[i]);
	}
	for(i=0;i<m4;i++)
	{
		printf("%d",d[i]);
		if(i!=m4-1)
		{
			printf(" ");
		}
	}
	return 0;
}

int main()
{
	int m1;
	int m2;
	int x[100];
	int y[100];
	m1=scan();
	m2=scan();
	fuzhi(x,m1);
	fuzhi(y,m2);
	paixu(x,m1);
	paixu(y,m2);
	print(x,y,m1,m2);
	return 0;
}


int m,n,a[1000]={0},b[1000]={0};
int main()
{
    int i,j,k;
    void read(int array1[],int array2[]);
    void sort(int array[],int x);
    void print(int array5[],int array6[]);
    scanf("%d%d",&m,&n);
    read(a,b);
    sort(a,m);
    sort(b,n);
    print(a,b);
}
void read(int array1[],int array2[])
{
    int i;
    for(i=0;i<m;i++)
    scanf("%d",&a[i]);
    for(i=0;i<n;i++)
    scanf("%d",&b[i]);
}
void sort(int array[],int x)
{
    int i,j,k,t;
    for(i=0;i<x-1;i++)
        for(j=i+1;j<x;j++)
                if(array[
j]<array[i])
                    {t=array[i];array[i]=array[j];array[j]=t;}
}

void print(int array5[],int array6[])
{
    int j;
    for(j=0;j<m;j++)
    printf("%d ",array5[j]);
    for(j=0;j<n-1;j++)
    printf("%d ",array6[j]);
    printf("%d",array6[n-1]);
}


struct HaHa
{
	int x,y,z[2][1000],g[2000];
};
struct HaHa scan()
{
	struct HaHa hehe;
	int i,j;
	scanf("%d%d",&hehe.x,&hehe.y);
	for(i=0;i<hehe.x;i++)
		scanf("%d",&hehe.z[0][i]);
	for(j=0;j<hehe.y;j++)
		scanf("%d",&hehe.z[1][j]);
	return(hehe);
}
struct HaHa line(struct HaHa yahoo)
{
	int i,temp,j;
	struct HaHa yahoo1;
	for(i=0;i<yahoo.x;i++)
	{
		for(j=i;j<yahoo.x;j++)
		{
			if(yahoo.z[0][i]>yahoo.z[0][j])
			{
				temp=yahoo.z[0][i];
				yahoo.z[0][i]=yahoo.z[0][j];
				yahoo.z[0][j]=temp;
			}
		}
	}
	for(i=0;i<yahoo.y;i++)
	{
		for(j=i;j<yahoo.y;j++)
		{
			if(yahoo.z[1][i]>yahoo.z[1][j])
			{
				temp=yahoo.z[1][i];
				yahoo.z[1][i]=yahoo.z[1][j];
				yahoo.z[1][j]=temp;
			}
		}
	}
	yahoo1=yahoo;
	return(yahoo1);
}
struct HaHa combine(struct HaHa xx)
{
	int i;
	struct HaHa xx1;
	for(i=0;i<xx.x;i++)
	{
		xx.g[i]=xx.z[0][i];
	}
	for(i=0;i<xx.y;i++)
	{
		xx.g[i+xx.x]=xx.z[1][i];
	}
	xx1=xx;
	return(xx1);
}
void print(struct HaHa xxx)
{
	int i;
	for(i=0;i<xxx.x+xxx.y-1;i++)
	{
		printf("%d ",xxx.g[i]);
	}
	printf("%d",xxx.g[xxx.x+xxx.y-1]);
}
void main()
{
	print(combine(line(scan())));
}


int a[1000],b[1000],m,n;
void shuru(void)
{
	cin>>m>>n;
	for(int i=0;i<m;i++)
		cin>>a[i];
	for(int i=0;i<n;i++)
		cin>>b[i];
}
void paixu(int f[],int length)
{
	int x;
	for(int i=0;i<length-1;i++)
		for(int j=0;j<=length-2-i;j++)
			if (f[j]>f[j+1])
			{
				x=f[j];
				f[j]=f[j+1];
				f[j+1]=x;
			}
}
void shuchu(void)
{
	int i;
	for(i=0;i<m;i++)
			cout<<a[i]<<' ';
	for(i=0;i<n-1;i++)
				cout<<b[i]<<' ';
	cout<<b[i]<<endl;
}
int main()
{
	shuru();
	paixu(a,m);
	paixu(b,n);

	shuchu();
}


int a[10000],b[10000],m,n;
int main()
{
	void Read(),Ord(),Gath(),Prin();
	Read();
	Ord();
	Gath();
	Prin();
}

void Read()
{
	int i;
	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 Ord()
{
	int i,j;
	void swap_a(int i,int j),swap_b(int i,int j);
	for (i=1;i<=m-1;i++)
		for (j=i+1;j<=m;j++)
			if (a[i]>a[j]) swap_a(i,j);
	for (i=1;i<=n-1;i++)
		for (j=i+1;j<=n;j++)
			if (b[i]>b[j]) swap_b(i,j);
}

void Gath()
{
	int i;
	for (i=m+1;i<=m+n;i++)
		a[i]=b[i-m];
}

void Prin()
{
	int i;
	printf("%d",a[1]);
	for (i=2;i<=m+n;i++)
		printf(" %d",a[i]);
}

void swap_a(int i,int j)
{
	int temp;
	temp=a[i];
	a[i]=a[j];
	a[j]=temp;
}

void swap_b(int i,int j)
{
	int temp;
	temp=b[i];
	b[i]=b[j];
	b[j]=temp;
}


void get(int n,int* a)
{
	int i;
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}
}
void order(int n,int*a)
{
	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 puttogether(int n,int*a,int m,int*b)
{
	int i;
	for(i=n;i<n+m;i++)
	{
		a[i]=b[i-n];
	}
	printf("%d",a[0]);
	for(i=1;i<n+m;i++)
	{
		printf(" %d",a[i]);
	}
}
int main()
{
	int a[500],b[500];
	int m,n;
	scanf("%d %d",&n,&m);
	get(n,a);
	get(m,b);
	order(n,a);
	order(m,b);
	puttogether(n,a,m,b);
	return 0;
}


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

}
void sort(int a[],int n,int b[],int m)
{
	int i,j,t;

    for(j=0;j<n-1;j++)
	{

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

		for(i=0;i<m-1-j;i++)
		if(b[i]>b[i+1])
		{
			t=b[i];b[i]=b[i+1];b[i+1]=t;
		}
	}

}
void hebing(int array1[],int array2[],int n,int m)
{
	int i;
	for(i=n;i<(n+m);i++)
		array1[i]=array2[i-n];

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

void main()
{
    void duqu(int n,int m,int a[],int b[]);
	void sort(int *p1,int n,int *p2,int m);
	void hebing(int array1[],int array2[],int n,int m);
	void xian(int array[],int n,int m);
	int n,m,a[1000],b[1000];
	scanf("%d %d",&n,&m);
	duqu(n,m,a,b);
	sort(a,n,b,m);
    hebing(a,b,n,m);
	xian(a,n,m);

}


int a[300],b[300],c[600];
void myfunc()
{
	int la,lb,i;
	cin>>la>>lb;
	for(i=0;i<la;i++)
		cin>>a[i];
	for(i=0;i<lb;i++)
		cin>>b[i];
	sort(a,a+la);
	sort(b,b+lb);
	for(i=0;i<la;i++)
		c[i]=a[i];
	for(i=la;i<la+lb;i++)
		c[i]=b[i-la];
	for(i=0;i<la+lb-1;i++)
		cout<<c[i]<<' ';
         cout<<c[i];
}
int main()
{
    myfunc();
    return 0;
}


int ary1[30], ary2[30];
int *pt1,*pt2;

void input(int array[],int num)
{
     int i;
     for(i=0; i<num; i++){
              cin >>array[i];
     }
}
void sort(int *ptr, int num)
{
     int i,j;       int temp;
     for(i=num-1; i>=0; i--){
             for(j=0; j<i; j++){
                      if(*(ptr+j)>*(ptr+j+1))
                      {     swap(*(ptr+j),*(ptr+j+1));  }
             }
     }
}
void combine(int *ptr1, int *ptr2, int num1, int num2)
{
     int i;
     ptr1+= num1;
     for(i=0; i< num2; i++){
              *(ptr1+i) = *(ptr2+i);
     }
}
void demo(int *pointer, int sum)
{
     int count=0;
     while(count != sum){
                 cout<< *pointer;
                 if(count++ !=sum-1)
                 {          cout << " ";     }
                 pointer++;
     }
}

int main(int argc, char *argv[])
{
    pt1= &ary1[0];     pt2= &ary2[0];
    int m,n;
    cin >> m >> n;
    input(ary1,m);
    input(ary2,n);
    sort(ary1,m);
    sort(ary2,n);
    combine(pt1, pt2, m,n);
    demo(pt1, m+n);

    return EXIT_SUCCESS;
}


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

int num1,num2,array1[20],array2[20],array[40];

void input(int array1[],int array2[])
{
	int i,j;

	scanf("%d %d",&num1,&num2);

	for(i=0;i<=num1-1;i++)
		scanf("%d",&array1[i]);
	for(j=0;j<=num2-1;j++)
		scanf("%d",&array2[j]);
}

void sort(int array[],int n)
{
	int i,j,t;

	for(i=0;i<n-1;i++)
	{
		for(j=0;j<n-1-i;j++)
		{
			if(array[j]>array[j+1])//????
			{
				t=array[j];
				array[j]=array[j+1];
				array[j+1]=t;
			}
		}
	}
}

void link(int array1[],int array2[],int array[],int n1,int n2)
{
	int i;

	for(i=0;i<n1;i++)
	{
		array[i]=array1[i];
	}
	for(i=0;i<n2;i++)
	{
		array[i+n1]=array2[i];
	}
}

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

void main()
{
 	input(array1,array2);
	sort(array1,num1);
	sort(array2,num2);
	link(array1,array2,array,num1,num2);
	output(array,num1+num2);
}


void sort(int str[],int n)
{
	int i,j,k,t;
	for(i=0;i<n-1;i++)
	{
		k=i;
		for(j=i+1;j<n;j++)
			if(str[j]<str[k])
				k=j;
			t=str[k];
			str[k]=str[i];
			str[i]=t;
	}

}
void gather(int str1[],int str2[])
{
	int t=0,i;
	while(str1[t]!='\0')
		t++;
	for(i=t;str2[i-t]!='\0';i++)
		str1[i]=str2[i-t];
}

void main()
{
	int i,n1,n2,str1[100],str2[100];
	scanf("%d%d",&n1,&n2);
	for(i=0;i<n1;i++)
		scanf("%d",&str1[i]);
	scanf("\n");
	for(i=0;i<n2;i++)
		scanf("%d",&str2[i]);
	sort(str1,n1);
	sort(str2,n2);
	gather(str1,str2);
	for(i=0;i<(n1+n2-1);i++)
		printf("%d ",str1[i]);
	printf("%d",str1[n1+n2-1]);

}


int main()
{
  void pre(int *,int);
  void bubble_sort(int*,int);
  void merge(int*,int,int*,int,int*);
  void print(int*,int);
  int a[1000],b[1000],c[1000],A,B;
  scanf("%d %d",&A,&B);
  pre(a,A);bubble_sort(a,A);
  pre(b,B);bubble_sort(b,B);
  merge(a,A,b,B,c);
  print(c,A+B);
}
void pre(int*a,int A)
{
	int i;
	for(i=0;i<A;i++)
	scanf("%d",a+i);
}
void bubble_sort(int* a,int A)
{
	int i,j,temp;
	for(j=A-1;j>0;j--)
	{
		for(i=0;i<j;i++)
		if(a[i]>a[i+1])
		{
			temp=a[i];
			a[i]=a[i+1];
			a[i+1]=temp;
		}
	}
}
void merge(int* a,int A,int* b,int B,int* c)
{
	int i;
	for(i=0;i<A;i++)
	  c[i]=a[i];
	for(i=0;i<B;i++)
	  c[i+A]=b[i];
}
void print(int* c,int C)
{
	int i;
	printf("%d",c[0]);
	for(i=1;i<C;i++)
	printf(" %d",c[i]);
}


int input(int[],int);
int sort(int[],int);
void combine(int[],int[],int,int);
void output(int[],int,int);
int main()
{
	int n1,n2;
	cin>>n1>>n2;
	int a[100],b[100];
	input(a,n1);
	input(b,n2);
	sort(a,n1);
	sort(b,n2);
	combine(a,b,n1,n2);
	return 0;

}
int input(int a[],int n)
{
	int i;
	for(i=0;i<n;i++)
	{
		cin>>a[i];
	}
	return a[i];
}
int sort(int a[],int n)
{
	int i,j,p;
	for(i=1;i<n;i++)
		for(j=0;j<n-i;j++)
		{
			if(a[j]>a[j+1])
			{
				p=a[j];
				a[j]=a[j+1];
				a[j+1]=p;
			}
		}
	return a[j];
}
void combine(int a[],int b[],int n1,int n2)
{
	int c[200];
	int i;
	for(i=0;i<n1;i++)
		c[i]=a[i];
	for(i=n1;i<n2+n1;i++)
		c[i]=b[i-n1];
	output(c,n1,n2);
}
void output(int c[],int n1,int n2)
{
	int i;
	for(i=0;i<n1+n2-1;i++)
		cout<<c[i]<<" ";
	cout<<c[n1+n2-1]<<endl;

}


int a[1000],b[1000];
void ccin(int m,int n);
void turn(int c[1000],int t);
void ccout(int m,int n);
int main()
{
	int m,n;
	cin>>m>>n;
	ccin(m,n);
	turn(a,m);
	turn(b,n);
	ccout(m,n);
	return 0;
}
void ccin(int m,int n)
{
	int i;
	for(i=0;i<m;i++)
		cin>>a[i];
	for(i=0;i<n;i++)
		cin>>b[i];
}
void turn(int c[1000],int t)
{
	int i,j,k;
	for(i=0;i<t-1;i++)
		for(j=0;j<t-1;j++)
			if(c[j]>c[j+1])
			{
				k=c[j];
				c[j]=c[j+1];
				c[j+1]=k;
			}
}
void ccout(int m,int n)
{
	int i;
	for(i=0;i<m;i++)
		cout<<a[i]<<" ";
	for(i=0;i<n-1;i++)
		cout<<b[i]<<" ";
	cout<<b[n-1]<<endl;
}


int n,m,i,j,k,a[100],b[100];
int read()
{
  cin>>n>>m;
  for (i=1;i<=n;i++)
       cin>>a[i];
  for (i=1;i<=m;i++)
       cin>>b[i];
  return 0;
}
int sorta()
{ int min,t;
  for (i=1;i<=n-1;i++)
       { min=i;
        for (j=i+1;j<=n;j++)
             if (a[min]>a[j]) min=j;
        t=a[i];
        a[i]=a[min];
        a[min]=t;
     }
     return 0;
}
int sortb()
{ int min,t;
  for (i=1;i<=m-1;i++)
       { min=i;
        for (j=i+1;j<=m;j++)
             if (b[min]>b[j]) min=j;
        t=b[i];
        b[i]=b[min];
        b[min]=t;
     }
     return 0;
}
int write()
{ for (i=1;i<=n;i++)
       cout<<a[i]<<' ';
  for (i=1;i<m;i++)
       cout<<b[i]<<' ';
  cout <<b[m]<<endl;
   return 0;
     }
int main()
{ k=read();
  k=sorta();
  k=sortb();
  k=write();
  return 0;
    }


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


void duqu(int a[],int b[],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 paixu(int a[],int b[],int M,int N)
{
	int i=0,j=0,temp;
	for (i=0;i<M;i++)
		for (j=i;j<M;j++)
		{
			if (a[j]<a[i])
			{
				temp=a[j];
				a[j]=a[i];
				a[i]=temp;
			}
		}
	for (i=0;i<N;i++)
		for (j=i;j<N;j++)
		{
			if (b[j]<b[i])
			{
				temp=b[j];
				b[j]=b[i];
				b[i]=temp;
			}
		}
}

void hebing(int a[],int b[],int c[],int M,int N)
{
	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 shuchu(int C[],int M,int N)
{
	int i;
	for (i=0;i<M+N-1;i++)
		printf("%d ",C[i]);
	printf("%d",C[M+N-1]);
}

int main()
{
	int m,n;
	int a1[100],a2[100],a3[100]={0};
	scanf("%d%d",&m,&n);
	duqu(a1,a2,m,n);
	paixu(a1,a2,m,n);
	hebing(a1,a2,a3,m,n);
	shuchu(a3,m,n);
	return 0;
}


void main()
{
	void sort(int array[],int n);
	int m,n,i;
	int a[100],b[100],c[200];
	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]);
	sort(a,m);
	sort(b,n);
	for(i=0;i<m+n;i++)
	{
		if(i<m)
			c[i]=a[i];
		else
			c[i]=b[i-m];
	}
	for(i=0;i<m+n;i++)
	{
		if(i<m+n-1)
			printf("%d ",c[i]);
		else
			printf("%d\n",c[i]);
	}
}

void sort(int array[],int n)
{
	int i,j,k,t;
	for(i=0;i<n-1;i++)
	{
		k=i;
		for(j=i+1;j<n;j++)
			if(array[j]<array[k])
				k=j;
			t=array[k];array[k]=array[i];array[i]=t;
	}
}


int m, n;

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

void input(int *a, int *b)
{
    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]);
    }
}

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

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

void output(int *c)
{
    int i;
    for (i = 0;i < m + n; i++) {
        printf("%d%s", c[i], i < m + n - 1 ? " " : "\n");
    }
}
int main()
{
    int a[10000] = {0};
    int b[10000] = {0};
    int c[10000] = {0};
    input(a, b);
    sort(a, b);
    merge(a, b, c);
    output(c);
    return 0;
}


int getin(int array[],int num);//???????
int sort(int array[],int num);//???????
int link(int array1[],int array2[],int num1,int num2);//???????
int main()
{
	int numa,numb,a[1000],b[1000];
	cin>>numa>>numb;
	getin(a,numa);
	getin(b,numb);
	sort(a,numa);
	sort(b,numb);
	link(a,b,numa,numb);
	return 0;
}
int getin(int array[],int num)
{
	for(int i=0;i<num;i++)
	{
		cin>>array[i];
	}
	return (array[num]);
}
int sort(int array[],int num)//????
{
	int temp;
	for(int i=0;i<num-1;i++)
	{
		for(int j=0;j<num-i-1;j++)
		{
			if(array[j]>array[j+1])
			{
				temp=array[j];
				array[j]=array[j+1];
				array[j+1]=temp;
			}
		}
	}
	return array[num];
}
int link(int array1[],int array2[],int num1,int num2)
{
	cout<<array1[0];
	for(int i=1;i<num1;i++)
		cout<<" "<<array1[i];
	for(int i=0;i<num2;i++)
		cout<<" "<<array2[i];
	return 0;
}


void main()
{
	int m,n;
	int a[100];
	int b[100];
	int c[200];
	void read(int a[],int b[],int m,int n);
	void paixu(int a[],int b[],int m,int n);
	void combine(int c[],int a[],int b[],int m,int n);
	void type(int c[],int m,int n);
	scanf("%d%d",&m,&n);
    read(a,b,m,n);
	paixu(a,b,m,n);
	combine(c,a,b,m,n);
	type(c,m,n);

}

void read(int a[],int b[],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 paixu(int a[],int b[],int m,int n)
{
    int i,j,t;
    for(j=0;j<m-1;j++)
		for(i=0;i<m-j-1;i++)
			if(a[i]>a[i+1])
			{
				t=a[i];
				a[i]=a[i+1];
				a[i+1]=t;
			}
	for(j=0;j<n-1;j++)
		for(i=0;i<n-j-1;i++)
			if(b[i]>b[i+1])
			{
				t=b[i];
				b[i]=b[i+1];
				b[i+1]=t;
			}
}

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

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


int a[100],b[100],n,m,i,j,t;
void shuru(int p,int q)
{
	for(i=0;i<p;i++)	scanf("%d",&a[i]);
	for(i=0;i<q;i++)	scanf("%d",&b[i]);
}
void shuchu(int p,int q)
{
	for(i=0;i<p;i++)	printf("%d ",a[i]);
	for(i=0;i<q-1;i++)	printf("%d ",b[i]);
	printf("%d",b[q-1]);
}
void paixu(int p,int c[])
{
	for(i=0;i<p;i++)
	for(j=0;j<i;j++)
	if(c[i]<c[j])
	{
		t=c[i];
		c[i]=c[j];
		c[j]=t;
	}
}
main()
{
	scanf("%d %d",&n,&m);
	shuru(n,m);
	paixu(n,a);
	paixu(m,b);
	shuchu(n,m);

}


int a[100],b[100];
int m,n;
int main()
{
	void getdata(void);
	void bubblesort(int a[],int b[]);
	void merge(void);
	void putdata(void);

	getdata();
	bubblesort(a,b);
	merge();
	putdata();

	return 0;
}

void getdata(void)
{
	int i;
	cin >> m >> n;
	for (i=0;i<m;i++)
	cin >> a[i] ;
	for (i=0;i<n;i++)
		cin >> b[i];
}

void bubblesort(int a[],int b[])
{
	int i,j;
	for (i=1;i<m;i++)
		for (j=0;j<m-i;j++)
			if (a[j]>a[j+1])
			{
				a[j]=a[j]^a[j+1];
				a[j+1]=a[j]^a[j+1];
				a[j]=a[j]^a[j+1];
			}
	for (i=1;i<n;i++)
		for (j=0;j<n-i;j++)
			if (b[j]>b[j+1])
			{
				b[j]=b[j]^b[j+1];
				b[j+1]=b[j]^b[j+1];
				b[j]=b[j]^b[j+1];
			}
}

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

void putdata(void)
{
	int i;
	cout << a[0];
	for (i=1;i<m+n;i++)
		cout << " " << a[i];
}


void inputarray(int a[], int);
void place(int a[], int);
void combine(int a[], int b[], int, int);
void printarray(int a[], int);

int main(void)
{
	int array1[100], array2[100], m, n;
	scanf("%d%d",&m, &n);
	inputarray(array1, m);
	inputarray(array2, n);
	place(array1, m);
	place(array2, n);
	combine(array1, array2, m, n);
	printarray(array1, m + n);
	return 0;
}

void inputarray(int array[], int n)
{
	for(int i = 0; i < n; i++)
	{
		scanf("%d", &array[i]);
	}
}

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

void place(int array[], int n)
{
	int mininum, temp;
	for(int i = 0; i < n - 1; i++)
	{
		mininum = i;
		for(int j = i + 1; j < n; j++)
		{
			mininum = array[j] < array[mininum]?  j : mininum;
		}
		temp = array[i];
		array[i] = array[mininum];
		array[mininum] = temp;
	}
}

void combine(int array1[], int array2[], int m, int n)
{
	for(int i = m; i < m + n; i++)
	{
		array1[i] = array2[i - m];
	}
}


void paixu(int *a,int x)
{
    int i=x-1,t,j;
    while(i>=1)
    {
               for(j=0;j<i;j++)
               {
                  if(a[j]>a[j+1])
                  {
                                 t=a[j];
                                 a[j]=a[j+1];
                                 a[j+1]=t;
                                 }
                                 }
                                 i--;
                                 }
                                 }
void lianjie(int *a,int x,int *b,int y,int *c)
{
     int i=0,j=0,t=1;
     while(i<x)
     {
                   c[i]=a[i];
                   i++;
                   }
     while(j<y)
     {
                   c[i]=b[j];
                   i++;
                   j++;
                   }
     printf("%d",c[0]);
     while(t<x+y)
     {
                 printf(" %d",c[t]);
                 t++;
                   }
                   }
main()
{
      int s,t,i;
      scanf("%d %d",&s,&t);
      int *a=(int*)malloc(s*sizeof(int));
      int *b=(int*)malloc(t*sizeof(int));
      int *c=(int*)malloc((s+t)*sizeof(int));
      for(i=0;i<s;i++)
      scanf("%d",&a[i]);
      for(i=0;i<t;i++)
      scanf("%d",&b[i]);
      paixu(a,s);
      paixu(b,t);
      lianjie(a,s,b,t,c);
      }


int num1[1000]={0},num2[1000]={0},a,b;

void shuru()
{int i;
 cin>>a;
 cin>>b;
 for(i=0;i<a;i++) cin>>num1[i];
 for(i=0;i<b;i++) cin>>num2[i];
     }

void sequence()
{int i,j,temp;
 for(i=0;i<a;i++) for(j=i+1;j<a;j++) if(num1[i]>num1[j]) {temp=num1[i];num1[i]=num1[j];num1[j]=temp;}
 for(i=0;i<a;i++) for(j=i+1;j<b;j++) if(num2[i]>num2[j]) {temp=num2[i];num2[i]=num2[j];num2[j]=temp;}
     }

void shuchu()
{int i;
 for(i=0;i<a;i++) cout<<num1[i]<<' ';
 for(i=0;i<b-1;i++) cout<<num2[i]<<' ';
 cout<<num2[b-1]<<endl;
     }

int main()
{shuru();
 sequence();
 shuchu();
 return 0;
    }


void turn(int a[ ],int n)
{
	int i,j,k;
	for(i=0;i<n-1;i++)
		for(j=i;j<n;j++){
		if(a[i]>a[j]){
			k=a[i];
			a[i]=a[j];
			a[j]=k;
		}}
	for(i=0;i<n;i++){
			if(i==0)printf("%d",a[i]);
			else printf(" %d",a[i]);
	}
}
void f(int a[],int b[],int an,int bn)
{
	turn(a,an);
	printf(" ");
	turn(b,bn);
}
void main()
{
	int i,an,bn,a[100],b[100];
	scanf("%d%d",&an,&bn);
	for(i=0;i<an;i++)scanf("%d",&a[i]);
	for(i=0;i<bn;i++)scanf("%d",&b[i]);
	f(a,b,an,bn);
}


/* Note:Your choice is C IDE */
void change(int *a,int n)
{int t,i,j;
	for(i=1;i<n;i++)
	for(j=0;j<i;j++)
	{if (a[i]<a[j])
		{t=a[j];
			a[j]=a[i];
			a[i]=t;}}}
void input(int *a, int n)
{int i;
	for(i=0;i<n;i++)
	scanf("%d",&a[i]);}
void output(int *a,int n)
{int i;
	for(i=0;i<n;i++)
	printf("%d ",a[i]);}
void main()
{int n,m,a[100],b[100];
	scanf("%d%d",&n,&m);
	input(a,n);input(b,m);
	change(a,n);change(b,m);
	output(a,n);output(b,m-1);printf("%d",b[m-1]);}


void main()
{
	int N1[100],N2[100],N[200],n1,n2;
	void scan(int N1[],int N2[],int *p1,int *p2);
	void order(int N1[],int n1,int N2[],int n2);
	void join(int N1[],int N2[],int N[],int n1,int n2);
	void print(int N[],int n);
	scan(N1,N2,&n1,&n2);
	order(N1,n1,N2,n2);
	join(N1,N2,N,n1,n2);
	print(N,n1+n2);
}
void scan(int N1[],int N2[],int *p1,int *p2)
{
    int i;
	scanf("%d%d",p1,p2);
	for(i=0;i<*p1;i++) scanf("%d",&N1[i]);
	for(i=0;i<*p2;i++) scanf("%d",&N2[i]);
}
void order(int N1[],int n1,int N2[],int n2)
{
	int i,j,imin,Nmin,Nm;
	for(i=0;i<n1;i++)
	{
		imin=i;
	    Nmin=N1[i];
		for(j=i;j<n1;j++)
		{
			if(N1[j]<Nmin)
			{
				imin=j;
				Nmin=N1[j];
			}
		}
		Nm=N1[i];
		N1[i]=N1[imin];
		N1[imin]=Nm;
	}
	for(i=0;i<n2;i++)
	{
		imin=i;
	    Nmin=N2[i];
		for(j=i;j<n2;j++)
		{
			if(N2[j]<Nmin)
			{
				imin=j;
				Nmin=N2[j];
			}
		}
		Nm=N2[i];
		N2[i]=N2[imin];
		N2[imin]=Nm;
	}
}
void join(int N1[],int N2[],int N[],int n1,int n2)
{
	int i;
	for(i=0;i<n1;i++) N[i]=N1[i];
	for(i=n1;i<n1+n2;i++) N[i]=N2[i-n1];
}
void print(int N[],int n)
{
	int i;
	printf("%d",N[0]);
	for(i=1;i<n;i++) printf(" %d",N[i]);
}


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


//
//  main.cpp
//  Homework_11_18
//  ?????
//  Created by airjcy on 11/28/12.
//  Copyright (c) 2012 airjcy. All rights reserved.
//

int compare(const void *a,const void *b)
{
    int x = *(int *)a;
    int y = *(int *)b;
    if (x < y) {
        return -1;
    }
    if (x == y) {
        return 0;
    }
    return 1;
}

void initArrays(int *a,int *b,int m,int n)
{
    int i;
    for (i = 0; i < m; i ++) {
        cin >> a[i];
    }
    for (i = 0; i < n; i ++) {
        cin >> b[i];
    }
}

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

void append(int *a,int *b,int *c,int m,int n)
{
    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 print(int *a,int n)
{
    int i;
    for (i = 0; i < n - 1; i ++) {
        cout << a[i] << " ";
    }
    cout << a[i];
}

int main(int argc, const char * argv[])
{
    //????????
    int m,n;
    cin >> m >> n;
    int a[m];
    int b[n];
    initArrays(a, b, m, n);
    sort(a, b, m, n);
    int c[m + n];
    append(a, b, c, m, n);
    print(c, m + n);
    return 0;
}


int A,B;
int *a,*b;
int c[500];
void putin()
{
	int i;
	scanf("%d %d",&A,&B);
	a=(int*)malloc(A*sizeof(int));
	b=(int*)malloc(B*sizeof(int));
	for(i=0;i<A;i++)
	scanf("%d",&a[i]);
	for(i=0;i<B;i++)
	scanf("%d",&b[i]);
}
void replace()
{
	int i,j,z;
	for(i=0;i<A-1;i++)
	  for(j=0;j<A-i-1;j++)
	  if(a[j]>a[j+1])
	  {z=a[j];a[j]=a[j+1];a[j+1]=z;}
	for(i=0;i<B-1;i++)
	  for(j=0;j<B-i-1;j++)
	  if(b[j]>b[j+1])
	  {z=b[j];b[j]=b[j+1];b[j+1]=z;}
}
void combine()
{
	int i;
	for(i=0;i<A;i++)
	c[i]=a[i];
	for(i=A;i<A+B;i++)
	c[i]=b[i-A];
}
void print()
{
	int i;
	for(i=0;i<A+B;i++)
	{
		if(i==0)
		printf("%d",c[i]);
		else
		printf(" %d",c[i]);
		}

}
main()
{
	putin();
	replace();
	combine();
	print();
	}


int a,b,c[20],d[20],s[20],l,i,j;
void shuru()
{
  scanf("%d%d",&a,&b);
  for(i=0;i<a;i++)
  scanf("%d",&c[i]);
  for(i=0;i<b;i++)
  scanf("%d",&d[i]);

}
int shuchu(int s[])
{
  for(i=0;i<a+b-1;i++)
  printf("%d ",s[i]);
  printf("%d",s[a+b-1]);
return 0;
}
int paixu (int f[],int k)
 {

 for(i=1;i<k;i++)
 for(j=0;j<k-i;j++)
   if(f[j]>=f[j+1])
   {l=f[j];
   f[j]=f[j+1];
   f[j+1]=l;
   }
 return 0;
 }
 int hebing(int c[],int d[])
{ for(i=0;i<a;i++)
   s[i]=c[i];
 for(i=a;i<b+a;i++)
   s[i]=d[i-a];
  return 0;   }
   void main ()
   {
   shuru();
   paixu(c,a);
    paixu(d,b);
   hebing(c,d);
   shuchu(s);
   }


int duru(int a[],int l)
{
	int i,j;
	for(i=1;i<=l;i++)
	{
		cin>>a[i];
	}
	return 1;
}
int paixu(int a[],int l)
{
	int i,j,p;
	for(i=1;i<=l-1;i++)
	{
		for(j=1;j<=l-i;j++)
		{
			if(a[j]>a[j+1])
			{
				p=a[j];
				a[j]=a[j+1];
				a[j+1]=p;
			}
		}
	}
	return 1;
}
int hebing(int a[],int b[],int l1,int l2)
{
	int i;
	for(i=l1+1;i<=l1+l2;i++)
		a[i]=b[i-l1];
	return l1+l2;
}
int xianshi(int a[],int l)
{
	for(int i=1;i<l;i++)
		cout<<a[i]<<" ";
	cout<<a[l]<<endl;
	return 1;
}
int main()
{
	int a[100],b[100],l1,l2;
	cin>>l1>>l2;
	duru(a,l1);
	duru(b,l2);
	paixu(a,l1);
	paixu(b,l2);
	l1=hebing(a,b,l1,l2);
	xianshi(a,l1);
	return 0;
}


void sort(int array[],int n)
{
	int i,j,k,t;
	for (i=0;i<n-1;i++)
	{
		k=i;
		for (j=i+1;j<n;j++)
			if(array[j]<array[k])
				k=j;
			t=array[k];
			array[k]=array[i];
			array[i]=t;
	}
}

void add(int array1[],int array2[],int x,int y)
{
	int array[100];
	int i,j;
	for (i=0;i<x;i++)
		array[i]=array1[i];
	for (i=x,j=0;j<y;i++,j++)
		array[i]=array2[j];
	printf("%d",array[0]);
	for (i=1;i<x+y;i++)
		printf(" %d",array[i]);

}

void main()
{
	int i,x,y,xarray[50],yarray[50];
	scanf("%d %d",&x,&y);
	for (i=0;i<x;i++)
		scanf("%d",&xarray[i]);
	for (i=0;i<y;i++)
		scanf("%d",&yarray[i]);
	sort (xarray,x);
	sort (yarray,y);
	add (xarray,yarray,x,y);

}


int m,n,a[500]={0},b[500]={0};
void scanarray()
{
	int i;
	scanf("%d %d",&m,&n);
	for(i=0;i<=m-1;i++)
	{
		scanf("%d",&a[i]);
	}
	for(i=0;i<=n-1;i++)
	{
		scanf("%d",&b[i]);
	}
}
void shengxu(int x[],int len)
{
	int i,j,temp;
	for(i=len-1;i>=0;i--)
	{
		for(j=0;j<=i-1;j++)
		{
			if(x[j]>=x[j+1])
			{
				temp=x[j];
				x[j]=x[j+1];
				x[j+1]=temp;
			}
		}
	}
}
void hebing(int x[],int y[],int lenx,int leny)
{
	int *p,*q;
	for(p=x+lenx,q=y;q<y+leny;p++,q++)
	{
		*p=*q;
	}
}
void printarray(int x[],int len)
{
	int i;
	printf("%d",x[0]);
	for(i=1;i<=len-1;i++)
	{
		printf(" %d",a[i]);
	}
	putchar('\n');
}
int main()
{
	scanarray();
	shengxu(a,m);
	shengxu(b,n);
	hebing(a,b,m,n);
	printarray(a,m+n);
	return 0;
}


int m,n;
void nem(int num1[100],int num2[100])
{
	int i;
	scanf("%d%d",&m,&n);
	for(i=0;i<m;i++)
	scanf("%d",&num1[i]);
	for(i=0;i<n;i++)
	scanf("%d",&num2[i]);
}
void pai(int num[100],int x)
{
	int i,j,t;
	for(j=0;j<x-1;j++)
	for(i=0;i<x-1-j;i++)
	if(num[i]>num[i+1])
	{
		t=num[i];
		num[i]=num[i+1];
		num[i+1]=t;
	}
}
void he(int num1[100],int num2[100],int num[100])
{
	int i;
	for(i=0;i<m;i++)
	num[i]=num1[i];
	for(i=m;i<m+n;i++)
	num[i]=num2[i-m];
}
void printnum(int num[100])
{
	int i;
	printf("%d",num[0]);
	for(i=1;i<m+n;i++)
	printf(" %d",num[i]);
}
int main()
{
	int num[100],num1[100],num2[100];
	nem(num1,num2);
	pai(num1,m);
	pai(num2,n);
	he(num1,num2,num);
	printnum(num);
	return 0;
}


void input(int x[],int p);
void sort_ascending(int x[],int p);
main()
{
 int m,n,a[maxsize],b[maxsize],j,i;
 scanf("%d %d",&m,&n);
 input(a,m);
 input(b,n);
 sort_ascending(a,m);
 sort_ascending(b,n);
 for (j=0;j<m;j++)
 printf("%d ",a[j]);
 for (i=0;i<n-1;i++)
 {
	printf("%d ",b[i]);
 }
 printf("%d",b[n-1]);
 }
void input(int x[],int p)
{
 int i;
 for(i=0;i<p;i++)
  scanf("%d",&x[i]);
}
void sort_ascending(int x[],int p)
{
 int i,j,t;
 for(i=0;i<p;i++)
  for(j=0;j<p-i-1;j++)
   if(x[j]>x[j+1])
   {
    t=x[j];
    x[j]=x[j+1];
    x[j+1]=t;
   }
}


int array_a[100],array_b[100],n_a,n_b;
void input()
{
    int i;

	scanf("%d%d",&n_a,&n_b);
	for(i=0;i<n_a;i++)
		scanf("%d",&array_a[i]);
	for(i=0;i<n_b;i++)
		scanf("%d",&array_b[i]);
}
void order()
{
	int i,j,temp;

	for(i=1;i<n_a;i++)
		for(j=1;j<n_a+1-i;j++)
			if(array_a[j]<array_a[j-1])
			{
				temp=array_a[j];
				array_a[j]=array_a[j-1];
				array_a[j-1]=temp;
			}
	for(i=1;i<n_b;i++)
		for(j=1;j<n_b-i+1;j++)
			if(array_b[j]<array_b[j-1])
			{
				temp=array_b[j];
				array_b[j]=array_b[j-1];
				array_b[j-1]=temp;
			}
}
void catenate()
{
	int i;
	for(i=0;i<n_b;i++)
		array_a[n_a+i]=array_b[i];
}
void print()
{
	int i;
	for(i=0;i<n_a+n_b;i++)
		printf("%d%c",array_a[i],(i==n_a+n_b-1)?'\n':' ');
}
int main()
{
	input();
	order();
	catenate();
	print();
	return 0;
}


void main()
{
	void reserve();
	reserve();
}

void reserve()
{
	void paixu(int a[],int k);
	int x,y;
	int i,j;
	int a[20],b[20];
	scanf("%d%d",&x,&y);
	for(i=0;i<x;i++)scanf("%d",&a[i]);
	for(i=0;i<y;i++)scanf("%d",&b[i]);

	paixu(a,x);
	paixu(b,y);

	for(j=0;j<y;j++)a[x+j]=b[j];
	for(j=0;j<x+y-1;j++)printf("%d ",a[j]);
	printf("%d\n",a[j]);
}

void paixu(int a[],int k)
{
	int i,j,temp;
	for(j=0;j<k;j++)
	{
		for(i=0;i<k-j-1;i++)
		{
			if(a[i]>a[i+1])
			{
				temp=a[i];
				a[i]=a[i+1];
				a[i+1]=temp;
			}
		}
	}
}


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

int L1,L2;
int ar1[MAX],ar2[MAX];

void read_array();
void sort_array();
void merge_array();
void show_array();

int main(){
  read_array();
  sort_array();
  merge_array();
  show_array();
  return 0;
}

void read_array(){
  memset(ar1,0,sizeof(ar1));
  memset(ar2,0,sizeof(ar2));

  cin>>L1>>L2;

  for(int i=0;i<L1;i++) cin>>ar1[i];
  for(int i=0;i<L2;i++) cin>>ar2[i];

}

void sort_array(){
  qsort(ar1,L1,sizeof(int),cmp);
  qsort(ar2,L2,sizeof(int),cmp);
}

void merge_array(){
  for(int i=0;i<L2;i++)
    ar1[L1+i]=ar2[i];
}

void show_array(){
  for(int i=0;i<L1+L2;i++){
    cout<<ar1[i];
    if(i!=L1+L2-1) cout<<' ';
  }
}


int a[1000],b[1000],n1,n2;
void get(int a[],int b[])
{
     int i;
     cin>>n1>>n2;
     for (i=0;i<n1;i++) cin>>a[i];
     for (i=0;i<n2;i++) cin>>b[i];
}
void sort(int a[],int b[])
{
     int i,j,temp;
     for (i=0;i<n1;i++)
     {
         for (j=i;j<n1;j++)
         {
             if (a[i]>a[j])
             {
                 temp=a[i];
                 a[i]=a[j];
                 a[j]=temp;
             }
         }
     }
     for (i=0;i<n2;i++)
     {
         for (j=i;j<n2;j++)
         {
             if (b[i]>b[j])
             {
                 temp=b[i];
                 b[i]=b[j];
                 b[j]=temp;
             }
         }
     }
}
void combine(int a[],int b[])
{
     int i;
     for (i=0;i<n2;i++) a[i+n1]=b[i];
}
void print(int a[],int b[])
{
     int i;
     for (i=0;i<n1+n2-1;i++) cout<<a[i]<<" ";
     cout<<a[n1+n2-1];
}
int main()
{
    get(a,b);
    sort(a,b);
    combine(a,b);
    print(a,b);
    return 0;
}


int n,m,a[100]={0},b[100]={0},c[200]={0};
void duqu()
{
	int *p;
	scanf("%d %d",&m,&n);
	for(p=a;p<a+m;p++)
		scanf("%d",p);
	for(p=b;p<b+n;p++)
		scanf("%d",p);
}
void range(int a[],int b[],int m,int n)
{
	int *p,*q,d;
	for(p=a;p<a+m-1;p++)
		for(q=p+1;q<a+m;q++)
			if(*p>*q)
			{
				d=*p;
				*p=*q;
				*q=d;
			}
		for(p=b;p<b+n-1;p++)
			for(q=p+1;q<b+n;q++)
			if(*p>*q)
			{
				d=*p;
				*p=*q;
				*q=d;
			}

}
void merge(int a[],int b[],int m,int n)
{
	int *p,*q;
	for(p=c,q=a;q<a+m;p++,q++)
		*p=*q;
	for(p=c+m,q=b;q<b+n;p++,q++)
		*p=*q;
}
void show(int c[],int d)
{
	int *p;
	for(p=c;p<c+d-1;p++)
		printf("%d ",*p);
	printf("%d",*p);
}
void main()
{
	duqu();
	range(a,b,m,n);
	merge(a,b,m,n);
	show(c,m+n);
}


void f1(int a[],int e);
void f2(int b[],int f);
void f3(int c[],int h,int d[],int l);
void main()
{
	int shuzu1[200],shuzu2[200];
	int geshu1,geshu2;
	scanf("%d%d",&geshu1,&geshu2);
	f1(shuzu1,geshu1);
	f1(shuzu2,geshu2);
	f2(shuzu1,geshu1);
	f2(shuzu2,geshu2);
	f3(shuzu1,geshu1,shuzu2,geshu2);
}
void f1(int a[],int e)
{
	int i;
	for(i=0;i<e;i++)
	{
		scanf("%d",&a[i]);
	}
}
void f2(int b[],int f)
{
	int k,t,g;
	for (k=0;k<f-1;k++)
	{
		for(t=0;t<f-1;t++)
		{
			if(b[t]>b[t+1])
			{
				g=b[t];
				b[t]=b[t+1];
				b[t+1]=g;
			}
		}
	}
}
void f3(int c[],int h,int d[],int l)
{
	int z;
	for(z=0;z<h;z++)
	{
		printf("%d ",c[z]);
	}
	for(z=0;z<l-1;z++)
	{
		printf("%d ",d[z]);
	}
	printf("%d",d[l-1]);
}


int m=0,n=0,a[100],b[100];
int *pointer1=&m,*pointer2=&n;
void input(int *r,int *s,int *x,int *y)
{
	int i;
	scanf("%d %d",r,s);
	for(i=0;i<*r;i++)
	{
		scanf("%d",x+i);
	}
	for(i=0;i<*s;i++)
	{
		scanf("%d",y+i);
	}
}
void sort(int *t,int *p)
{
	int i,j,r,s;
	for(i=0;i<(*t)-1;i++)
	{
        r=i;
		for(j=i+1;j<*t;j++)
			if(*(p+j)<*(p+r)) r=j;
		if(r!=i)
		{
			s=*(p+i);
			*(p+i)=*(p+r);
			*(p+r)=s;
		}
	}
}
void output(int *x,int *y,int *p1,int *p2)
{
	int i;
	for(i=0;i<*x;i++)
		printf("%d ",*(p1+i));
	for(i=0;i<*y;i++)
		printf("%d%c",*(p2+i),(i<(*y)-1)?' ':'\n');
}
void main()
{
	input(pointer1,pointer2,a,b);
	sort(pointer1,a);
	sort(pointer2,b);
	output(pointer1,pointer2,a,b);
}


void sort(int a[],int n);
int main()
{
    int m,n,i,j,a[100],b[100];
	cin>>m>>n;
	for (i = 0; i<m; i++) {
		scanf("%d",&a[i]);
	}
	sort(a,m);
	for(j=0;j<n;j++){
		scanf("%d",&b[j]);
	}
	sort(b,n);
    for(i = 0;i < m;i++)
	cout<<a[i]<<" ";
	for(j=0;j<n-1;j++)
	cout<<b[j]<<" ";
	cout<<b[n-1];
	return 0;
}
void sort(int a[],int n)
{
 int i,j,index,temp;

 for(i=0;i<n-1;i++)
 {

  index=i;
  for(j=i+1;j<n;j++)
  {
   if(a[index]>a[j])
    index=j;
  }
        temp=a[i];
  a[i]=a[index];
  a[index]=temp;
 }
}


int m,n;
void get (int a[200],int b[200])
{
 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 sequence (int a[200], int p)
{
 int i,j,temp;
 for (i=0;i<p;i++)
  for (j=i+1;j<p;j++)
   if (a[j]<a[i])
   {
    temp=a[i];
    a[i]=a[j];
    a[j]=temp;
   }
  // printf("G");
}
void combine (int a[200],int p,int b[200],int q)
{
 int j;
 for (j=0;j<q;j++)
  a[p+j]=b[j];
}
void show (int a[200], int p)
{
 int i;
 for (i=0;i<p-1;i++)
 {
  printf("%d ",a[i]);
 }
 printf("%d",a[p-1]);
}
void main ()
{
 int a[200],b[200];
 get (a,b);
 sequence (a,m);
 sequence (b,n);
 combine (a,m,b,n);
 show (a,m+n);
}


/*
 *???: model programming.cpp
 *??????
 *????: 2012-11-18
 *??: ?????
 */

int num1[1000],num2[1000],a,b;

void cin_array(int num1[],int num2[])
{
    cin >> a >> b;
    for (int i = 0; i < a; i++) cin >> num1[i];
    for (int i = 0; i < b; i++) cin >> num2[i];
}//??a?b?????

void sort(int num1[],int num2[])
{
    int temp;
    for (int i = 1; i <= a; i++)
        for (int j = 0; j < a - i; j++)
            if (num1[j] > num1[j+1]){
                temp = num1[j];
                num1[j] = num1[j+1];
                num1[j+1] = temp;
            }
    for (int i = 1; i <= b; i++)
        for (int j = 0; j < b - i; j++)
            if (num2[j] > num2[j+1]){
                temp = num2[j];
                num2[j] = num2[j+1];
                num2[j+1] = temp;
            }
}//???????????

void connect(int num1[], int num2[])
{
    for (int i = 0; i < b; i++)
        num1[a + i] = num2[i];
}//??

void cout_array(int num[])
{
    for (int i = 0; i < a + b - 1; i++)
        cout << num[i] << " ";
    cout << num[a+b-1];
}//??

int main ()
{
    cin_array(num1,num2);
    sort(num1,num2);
    connect(num1,num2);
    cout_array(num1);
    return 0;
}


int pai1 (int x[1000] ,int y);
int pai2 (int x[1000] ,int y);
int main ()
{
    int n, m, i, j;
    int a[1000],b[1000];
    scanf ("%d %d\n", &n, &m);
    for (i=0;i<n;i++)
    {
        scanf ("%d\n",&a[i]);
    }

    for (j=0;j<m;j++)
    {
        scanf ("%d",&b[j]);
    }
    pai1 (a,n);
	pai2 (b,m);
}

int pai1(int x[] ,int y)
{
    int i,j,min,stmp,flag=0;

    for(i=0;i<y;i++)
    {
        min=x[i];
        for(j=i+1;j<y;j++)
            if(min>x[j])
            {
                min=x[j];
                stmp=x[i];
                x[i]=x[j];
                x[j]=stmp;
            }
    }
    for(i=0;i<y;i++)
	{
		if (flag==0)
		{
			printf("%d" , x[i]);
			flag=1;
			continue;
		}
		if (flag==1)
		{
			printf(" %d" , x[i]);
		}
	}
	return 0;
}
int pai2(int x[] ,int y)
{
    int i,j,min,stmp;

    for(i=0;i<y;i++)
    {
        min=x[i];
        for(j=i+1;j<y;j++)
            if(min>x[j])
            {
                min=x[j];
                stmp=x[i];
                x[i]=x[j];
                x[j]=stmp;
            }
    }
    for(i=0;i<y;i++)
        printf(" %d" , x[i]);
	return 0;
}


int n,m,i,j;
int a[10000];
void input()
{
cin>>n>>m;
for(i=0;i<n+m;i++)
cin>>a[i];
}

void fsort()
{
 sort(a,a+n);
 sort(a+n,a+n+m);
}
void print(){
	cout<<a[0];
	for(i=1;i<n+m;i++)
	cout<<' '<<a[i];
}
int main()
{input();
 fsort();
 print();
return 0;
}


void main()
{
	void read();
    read();
}
void read()
{
	int a,b;
	void shu(int x,int y);
	scanf("%d%d",&a,&b);
	shu(a,b);
}
void shu(int x,int y)
{
	int a[100],b[100],i;
	void pai(int a[],int x,int b[],int y);
	for(i=0;i<x;i++)
	{
		scanf("%d",&a[i]);
	}
	for(i=0;i<y;i++)
	{
		scanf("%d",&b[i]);
	}
	pai(a,x,b,y);
}
void pai(int a[],int x,int b[],int y)
{
	int i,k,m;
	void pr(int a[],int x,int b[],int y);
	for(i=0;i<x-1;i++)
	{
		for(k=0;k<x-1-i;k++)
		{
			if(a[k]>a[k+1])
			{
				m=a[k+1];
				a[k+1]=a[k];
				a[k]=m;
			}
		}
	}
	for(i=0;i<y-1;i++)
	{
		for(k=0;k<y-1-i;k++)
		{
			if(b[k]>b[k+1])
			{
				m=b[k+1];
				b[k+1]=b[k];
				b[k]=m;
			}
		}
	}
	pr(a,x,b,y);
}
void pr(int a[],int x,int b[],int y)
{
	int i;
	printf("%d",a[0]);
	for(i=1;i<x;i++)
	{
		printf(" %d",a[i]);
	}
	for(i=0;i<y;i++)
		printf(" %d",b[i]);
}


void paixu(int n,int a[1000]){
	if(n==0) return;
	int x,i;
	int min=a[0];
	for(x=0;x<n;x++){
		if(a[x]<=min)
			min=a[x];
	}
	if(n>1)
	cout<<min<<' ';
	if(n==1)
		cout<<min;
	for(x=0;x<n;x++){
		if(a[x]==min)
			break;
	}
	for(i=x;i<n-1;i++)
		a[i]=a[i+1];
	return paixu(n-1,a);
}
int main(){
	int m1,m2,x;
	int s[1000];
	memset(s,0,sizeof(s));
	cin>>m1>>m2;
	for(x=0;x<m1;x++)
		cin>>s[x];
	paixu(m1,s);
	cout<<' ';
	memset(s,0,sizeof(s));
	for(x=0;x<m2;x++)
		cin>>s[x];
	paixu(m2,s);
	return 0;
}


int m,n,a[200],b[100];
int main()
{
	void getarray();
	void paixu(int s[],int t);
	void hebin();
	void print();
	getarray();
	paixu(a,m);
	paixu(b,n);
	hebin();
	print();
	return 0;
}
void getarray()
{
	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 paixu(int s[],int t)
{
	int i,j,temp;
	for(j=1;j<t;j++)
		for(i=0;i<t-j;i++)
			if(s[i]>s[i+1]){
				temp=s[i];
				s[i]=s[i+1];
				s[i+1]=temp;
			}
}
void hebin()
{
	int i;
	for(i=m;i<m+n;i++)
		a[i]=b[i-m];
}
void print()
{
	int i;
	printf("%d",a[0]);
	for(i=1;i<m+n;i++)
		printf(" %d",a[i]);
}


void input(int m,int n,int shu1[],int shu2[])
{
     int i;
     for(i=0;i<m;i++) cin>>shu1[i];
     for(i=0;i<n;i++) cin>>shu2[i];
}
void paixu(int shu[],int m)
{
     int i,j,temp;
     for(i=0;i<m-1;i++)
     {
                          for(j=0;j<m-i-1;j++)
                          {
                                            if (shu[j]>shu[j+1])
                                            {
                                                                temp=shu[j+1];
                                                                shu[j+1]=shu[j];
                                                                shu[j]=temp;
                                            }
                          }
     }
}
void output(int m,int n,int a[],int b[])
{
     int i;
     for(i=0;i<m;i++) cout<<a[i]<<" ";
     for(i=0;i<n-1;i++) cout<<b[i]<<" ";
     cout<<b[n-1];
}
int main()
{
    int num1,num2,shu1[10000],shu2[10000];
    cin>>num1>>num2;
    input(num1,num2,shu1,shu2);
    paixu(shu1,num1);
    paixu(shu2,num2);
    output(num1,num2,shu1,shu2);
    cin.get();cin.get();cin.get();cin.get();
    return 0;
}


/*
 * mokuahihua.cpp
 *
 *  Created on: 2012-11-27
 *      Author: wenjun
 */
int a[100],b[100];
int c,d;
void read(int,int);
void rank(int,int);
void print (int,int);
int main ()
{
	cin>>c>>d;
	read (c,d);
	rank (c,d);
	print(c,d);
}
void read(int n,int m)
{
	for(int i=0;i<n;i++)
		cin>>a[i];
	for(int i=0;i<m;i++)
		cin>>b[i];
}
void rank(int n,int m)
{
	int temp;
	for(int i=0;i<n-1;i++)
	{
		for(int j=0;j<n-1-i;j++)
		{
			if(a[j]>a[j+1])
			{
				temp=a[j];a[j]=a[j+1];a[j+1]=temp;
			}
		}
	}
	for(int i=0;i<m-1;i++)
		{
			for(int j=0;j<m-1-i;j++)
			{
				if(b[j]>b[j+1])
				{
					temp=b[j];b[j]=b[j+1];b[j+1]=temp;
				}
			}
		}
}
void print (int n,int m)
{
	for(int i=0;i<n;i++)
		cout<<a[i]<<" ";
	for(int i=0;i<m;i++)
	{
		cout<<b[i];
		if(i!=m-1)
			cout<<" ";
	}

}


int a[100]={0},b[100]={0};
int a_n,b_n,i;
void read()
{
	scanf("%d %d",&a_n,&b_n);
	for(i=0;i<a_n;i++)
		scanf("%d",&a[i]);
	for(i=0;i<b_n;i++)
		scanf("%d",&b[i]);
}
void sort(int a[],int a_n,int b[],int b_n)
{
	int i,j,key;
	for(i=1;i<a_n;i++)
	{
		key=a[i];
		j=i-1;
		while(a[j]>key&&j>=0){a[j+1]=a[j];
		j--;}a[j+1]=key;
	}
		for(i=1;i<b_n;i++)
	{
		key=b[i];
		j=i-1;
		while(b[j]>key&&j>=0){b[j+1]=b[j];
		j--;}b[j+1]=key;
	}
}
void merge(int a[],int a_n,int b[],int b_n)
{
	int i;
	for(i=0;i<b_n;i++)
		a[a_n+i]=b[i];
}
void write()
{
	int i;
	for(i=0;i<a_n+b_n-1;i++)
	{
		printf("%d ",a[i]);
	}
	printf("%d",a[i]);
}
void main()
{
	read();
	sort(a,a_n,b,b_n);
	merge(a,a_n,b,b_n);
	write();
}


int shu1, shu2;
int sum[max], sum2[max];
int comp(const void *a, const void *b)
{
	return *(int *)a - *(int *)b;
}
void input()
{
	cin >> shu1 >> shu2;
}
void input1()
{
	int i;
	for (i = 0; i < shu1; i++)
		cin >> sum[i];
	for (i = 0; i < shu2; i++)
		cin >> sum2[i];
}
void pai()
{
	qsort(sum, shu1,sizeof(int),comp);
	qsort(sum2, shu2,sizeof(int),comp);
}
void print()
{
	int i;
	int k = 0;
	for (i = 0; i < shu1; i++)
	if (k == 0){ cout << sum[i]; k++; }
	else cout << " " << sum[i];
	for (i = 0; i < shu2;i++)
	if (k == 0){ cout << sum2[i]; k++; }
	else cout << " " << sum2[i];
}
int main()
{
	input();
	input1();
	pai();
	print();

}


void order(int a[],int n)
{
	int i=0,j=0;
	int t;
	for(i=0;i<n;i++)
	{
		for(j=0;j<n-i-1;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 b[],int m)
{
	int i=0,j=0;
	while(i<n)
	{
		printf("%d ",a[i]);
		i++;
	}
	while(j<m-1)
	{
		printf("%d ",b[j]);
		j++;
	}
	printf("%d",b[m-1]);
}
void main()
{
	void order(int a[],int n);
	void print(int a[],int n,int b[],int m);
	int x[20],y[20];
	int n,m,i=0,j=0;
	scanf("%d%d",&n,&m);
	while(i<n)
	{
		scanf("%d",&x[i]);
		i++;
	}
	while(j<m)
	{
		scanf("%d",&y[j]);
		j++;
	}
	order(x,n);
	order(y,m);
	print(x,n,y,m);
}


int main()
{	int order(int m);
	int n1,n2;
	cin>>n1>>n2;
	order(n1);
	cout<<" ";
	order(n2);
	return 0;
}

int order(int m)
{	int a[1000];
	int i,j,temp;
	for(i=1;i<=m;i++)
		cin>>a[i];
	for(i=1;i<=m-1;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<=m-1;i++)
		cout<<a[i]<<" ";
	cout<<a[m];
		return 0;
}


int la,lb;

void read(int a[],int b[])
{
	int i;
	scanf("%d %d",&la,&lb);
	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 b[])
{
	int i;
	int t;
	for(i=0;i<la-1;i++)
	{
		if(a[i]>a[i+1])
		{
			t=a[i];
			a[i]=a[i+1];
			a[i+1]=t;
			if(i!=0)
			{i=i-2;}
		}
	}
	for(i=0;i<lb-1;i++)
	{
		if(b[i]>b[i+1])
		{
			t=b[i];
			b[i]=b[i+1];
			b[i+1]=t;
			if(i!=0)
			{i=i-2;}
		}
	}
}

void combine(int a[],int b[])
{
	int i;
	for(i=0;i<lb;i++)
	{
		a[la+i]=b[i];
	}
}

void print(int a[])
{
	int i;
	for(i=0;i<(la+lb);i++)
	{
		if (i!=(la+lb-1))
		printf("%d ",a[i]);
		else
			printf("%d",a[i]);
	}
}

int main()
{
	int x[200],y[100];
	read(x,y);
//	printx(x);
	sort(x,y);
//	printx(x);
	combine(x,y);
	print(x);
	return 0;
}


int m,n,a[100],b[100],c[200];
void shuru(int x,int y,int a[],int b[]){
	cin>>x>>y;
	m=x;
	n=y;
	for(int i=0;i<x;i++) { cin>>a[i]; }
	for(int i=0;i<y;i++) { cin>>b[i]; }
	}//????
void paixu(int x[],int l){
	for(int i=0;i<l-1;i++){
		for(int j=0;j<l-1-i;j++){
			if(x[j]>x[j+1]){
				int p;
				p=x[j];
				x[j]=x[j+1];
				x[j+1]=p;
				}
			}
		}
	} //??????
void hebing(int a[],int b[],int c[],int m,int n){
	for(int i=0;i<m;i++) { c[i]=a[i]; }
	for(int i=0;i<n;i++) { c[i+m]=b[i]; }
	} //????
void shuchu(int c[], int m, int n){
	for(int i=0;i<n+m;i++){
		if(i==0)cout<<c[i];
		else cout<<" "<<c[i];
	    }
	} //????
int main(){
	shuru(m,n,a,b);
	paixu(a,m);
	paixu(b,n);
	hebing(a,b,c,m,n);
	shuchu(c,m,n);

	return 0;
	}


int a[1000],b[1000];
int m,n;
void input(){
	cin>>m>>n;
	for(int i=1;i<=m;i++)cin>>a[i];
	for(int i=1;i<=n;i++)cin>>b[i];
}
void resort(){
	sort(a+1,a+m+1);
	sort(b+1,b+n+1);
}
void output(){
	cout<<a[1];
	for(int i=2;i<=m;i++)cout<<' '<<a[i];
	for(int i=1;i<=n;i++)cout<<' '<<b[i];
}
int main(){
	input();
	resort();
	output();
}


struct nums
{int m;
 int n;
 int x[2][100];
};
struct nums get()
{int i;
 struct nums in;
 scanf("%d%d",&in.m,&in.n);
 getchar();
 for (i=0;i<in.m;i++)
	 scanf("%d",&in.x[0][i]);
 for (i=0;i<in.n;i++)
	 scanf("%d",&in.x[1][i]);

return in;
}
struct nums bubble(struct nums in)
{int i,j,c;
 for (i=1;i<=in.m;i++)
     for (j=0;j<in.m-1;j++)
		 if (in.x[0][j]>in.x[0][j+1])
		 {c=in.x[0][j];
          in.x[0][j]=in.x[0][j+1];
		  in.x[0][j+1]=c;
		 }
  for (i=1;i<=in.n;i++)
     for (j=0;j<in.n-1;j++)
		 if (in.x[1][j]>in.x[1][j+1])
		 {c=in.x[1][j];
          in.x[1][j]=in.x[1][j+1];
		  in.x[1][j+1]=c;
		 }
return in;
}
struct nums combine(struct nums in)
{int i;
 for (i=in.m;i<in.m+in.n;i++)
	 in.x[0][i]=in.x[1][i-in.m];
 return in;
}
void put(struct nums in)
{int i;
 printf("%d",in.x[0][0]);
 for (i=1;i<in.m+in.n;i++)
	 printf(" %d",in.x[0][i]);
}
void main()
{struct nums in=get();
 struct nums ina=bubble(in);
 struct nums inb=combine(ina);
 put(inb);
}


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


int b[100],c[100],d,e,f[200];
int du();
int paib();
int paic();
int add();
int show();
int main()
{
	int i;
	d=du();e=du();for(i=0;i<d;i++) b[i]=du();for(i=0;i<e;i++) c[i]=du();
	paib();paic();
	add();
	show();
	return 0;
}
int du()
{
	int x;
	scanf("%d",&x);
	return x;
}
int paib()
{
	int j,k,r;
	for(j=0;j<d-1;j++)
	{
		for(k=j+1;k<d;k++)
		{
			if(b[k]<b[j])
			{
				r=b[k];b[k]=b[j];b[j]=r;
			}
		}
	}
	return 0;
}
int paic()
{
	int j,k,r;
	for(j=0;j<e-1;j++)
	{
		for(k=j+1;k<e;k++)
		{
			if(c[k]<c[j])
			{
				r=c[k];c[k]=c[j];c[j]=r;
			}
		}
	}
	return 0;
}
int add()
{
	int	i;
	for(i=0;i<d;i++) f[i]=b[i];
	for(i=0;i<e;i++) f[i+d]=c[i];
	return 0;
}
int show()
{
	int i;
	for(i=0;i<d+e-1;i++) printf("%d ",f[i]);
	printf("%d",f[d+e-1]);
	return 0;
}


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


int c[200];

void main()
{
    void to(int a[],int b[],int n,int m);
  	void hebing(int a[],int b[],int n,int m);
	void print(int c[],int n,int m);
	int n,m,a[100],b[100],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]);
	}

	to(a,b,n,m);
	hebing(a,b,n,m);
	print(c,n,m);
}

void to(int a[],int b[],int n,int m)
{
	int t,u,s,f,e,p;
	for(t=0;t<n-1;t++)
	{
		for(u=t+1;u<n;u++)
		{
			if(a[t]>a[u])
			{
				s=a[t];
				a[t]=a[u];
				a[u]=s;
			}
		}
	}
	for(f=0;f<m-1;f++)
	{
		for(e=f+1;e<m;e++)
		{
			if(b[f]>b[e])
			{
				p=b[f];
				b[f]=b[e];
				b[e]=p;
			}
		}
	}

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


int n,m,N[100],M[100];
void scan()
{int i;
	scanf("%d %d",&n,&m);
	for(i=0;i<n;i++)
		scanf("%d",&N[i]);
	for(i=0;i<m;i++)
		scanf("%d",&M[i]);
}
void sort(int q,int a[])
{
	int i,j,k,t;
	for(i=0;i<q-1;i++)
	{k=i;
		for(j=i+1;j<q;j++)
			if(a[j]<a[k])  k=j;
		if(k!=i)
		{t=a[i];
		a[i]=a[k];
		a[k]=t;}
	}
}
void print()
{int i;
    printf("%d",N[0]);
	for(i=1;i<n;i++)
		printf(" %d",N[i]);
	for(i=0;i<m;i++)
		printf(" %d",M[i]);
	printf("\n");
}
void main()
{
	scan();
	sort(n,N);
	sort(m,M);
	print();
}


void pai(int n,int a[])
{
    for(int i=0;i<n;i++)
    {
    scanf("%d",&a[i]);
    }
    for(int i=0;i<n;i++)
    {
    for(int r=1;r<n-i;r++)
    {
    if(a[i+r]<a[i])
    {
    int k=a[i];
    a[i]=a[i+r];
    a[i+r]=k;
    }
    }
    }
}
int link(int n,int m)
{
    int a[100]={0},b[100]={0};
    pai(n,a);
    pai(m,b);
    for(int i=0;i<n;i++)
    printf("%d ",a[i]);
    for(int i=0;i<m-1;i++)
    printf("%d ",b[i]);
    printf("%d",b[m-1]);
}

int main()
{
    int n,m;
    scanf("%d %d",&n,&m);
    link(n,m);
    printf("\n");
}


int a[10000],b[10000],la,lb,c[20000];
void get();
void array();
void combine();
void out();
int main()
{
	get();
	array();
	combine();
	out();
	return 0;
}
void get()
{
	cin>>la>>lb;
	for(int i=0;i<la;i++)
	{
		cin>>a[i];
	}
	for(int i=0;i<lb;i++)
	{
		cin>>b[i];
	}
}
void array()
{
	int v;
	for(int i=0;i<la-1;i++)
	{
		for(int j=0;j<la-i-1;j++)
		{
			if(a[j]>a[j+1])
			{
				v=a[j];
				a[j]=a[j+1];
				a[j+1]=v;
			}
		}
	}
	for(int i=0;i<lb-1;i++)
	{
		for(int j=0;j<lb-i-1;j++)
		{
			if(b[j]>b[j+1])
			{
				v=b[j];
				b[j]=b[j+1];
				b[j+1]=v;
			}
		}
	}
}
void combine()
{
	for(int i=0;i<la;i++)
	{
		c[i]=a[i];
	}
	for(int i=0;i<lb;i++)
	{
		c[la+i]=b[i];
	}
}
void out()
{
	for(int i=0;i<la+lb;i++)
	{
		if(i==0)
		cout<<c[i];
		else
		cout<<' '<<c[i];
	}
}


int m,n,i,str[1000];
void get();
void sort();
int join();
void print();
void get ()
{
	scanf("%d %d",&m,&n);
	for(i=0;i<m+n;i++)
		scanf("%d",&str[i]);
}
void sort ()
{
	int i,j,temp;
	for(i=0;i<m;i++)
	{for(j=i+1;j<m;j++)
	if(str[j]<str[i]){temp=str[i];str[i]=str[j];str[j]=temp;}}
	for(i=m;i<m+n;i++)
	{for(j=i+1;j<m+n;j++)
	if(str[j]<str[i]){temp=str[i];str[i]=str[j];str[j]=temp;}}
}
int join ()
{return 0;}
void print ()
{printf("%d",str[0]);
for(i=1;i<m+n;i++)
printf(" %d",str[i]);
}
void main()
{get(str);
sort(str);
join(str);
print(str);}


/*
 * Function2.7FourParts.cpp
 *
 *  Created on: 2012-11-30
 *      Author: ???
 *      ??:??????????
 */
int a,b;
int a1[20],b1[20],c[40];
void input(void){ //????
	cin>>a>>b;
	for(int i=0;i<a;i++)
		cin>>a1[i];
	for(int j=0;j<b;j++)
		cin>>b1[j];
}
void select_sort(int array[],int n) //????
 {
    int i,j,k,t;
    for(i=0;i<n-1;i++)
    {
       k=i;
       for(j=i+1;j<n;j++)
       if(array[j]<array[k]) k=j;
       t=array[k];array[k]=array[i];array[i]=t;
    }
 }

void combine(int array1[],int array2[])//????
{
	for(int i=0;i<a;i++)
		c[i]=array1[i];
	for(int j=0;j<b;j++)
		c[j+a]=array2[j];
}
void output(void){ //????
	for(int i=0;i<a+b-1;i++)
		cout<<c[i]<<" ";
	cout<<c[a+b-1]<<endl;
}
int main(){
	input();
	select_sort(a1,a); select_sort(b1,b);
	combine(a1,b1);
	output();
	return 0;
}


int s1=0,s2=0;
void reads()
 {cin>>s1>>s2;
 }
void read(int s,int a[])
 {for (int i=1;i<=s;i++)cin>>a[i];
 }
void sort(int s,int a[])
 {
  for (int i=1;i<=s-1;i++)
   for (int j=i+1;j<=s;j++)
    {
     if (a[i]>a[j]){int c=a[i];a[i]=a[j];a[j]=c;}
    }
 }
void combine (int s1,int s2,int a1[],int a2[])
 {
  for (int i=s1+1;i<=s1+s2;i++)
  a1[i]=a2[i-s1];
 }
void print (int s,int a[])
  {for (int i=1;i<=s;i++)
  {cout<<a[i];
   if (i<s)cout<<' ';}
  }
int main()
{int a1[500],a2[500];
reads();
read(s1,a1);
read(s2,a2);
sort(s1,a1);
sort(s2,a2);
combine(s1,s2,a1,a2);
print(s1+s2,a1);
return 0;
}


int len1,len2;
int *sz1,*sz2;

void read()
{
	int i;
	scanf("%d%d",&len1,&len2);
	sz1=(int *)malloc(LEN*(len1+len2));
	sz2=(int *)malloc(LEN*len2);

	for(i=0;i<len1;i++)
		scanf("%d",sz1+i);
	for(i=0;i<len2;i++)
		scanf("%d",sz2+i);
}
void sort()
{
	int i,j,temp;

	for(i=0;i<len1;i++){
		for(j=i+1;j<len1;j++)
			if(sz1[i]>sz1[j]){
				temp=sz1[i];
				sz1[i]=sz1[j];
				sz1[j]=temp;
			}
	}
	for(i=0;i<len2;i++){
		for(j=i+1;j<len2;j++)
			if(sz2[i]>sz2[j]){
				temp=sz2[i];
				sz2[i]=sz2[j];
				sz2[j]=temp;
			}
	}
}
void combine()
{
	int i;
	for(i=0;i<len2;i++){
		sz1[len1+i]=sz2[i];
	}
}
void print()
{
	int i;
	printf("%d",sz1[0]);
	for(i=1;i<len1+len2;i++){
		printf(" %d",sz1[i]);
	}
	printf("\n");
}

void main()
{
	read();
	sort();
	combine();
	print();
}


void read(int a[],int m);
void bubble(int a[],int m);
void add(int a[],int b[],int c[],int m,int n);
void out(int c[],int m);

int main()
{
	int m,n;
	int a[100],b[100],c[200];
	scanf("%d%d",&m,&n);
	read(a,m);
	read(b,n);
	bubble(a,m);
	bubble(b,n);
	add(a,b,c,m,n);
	out(c,m+n);
	return 0;
}

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

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

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

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


/*
 * function2.7.cpp
 *
 *  Created on: 2013-12-1
 *      Author: st
 */

int a[20],b[20],c[40];
void read(int x1,int x2)
{   int i;
	for(i=0;i<x1;i++)
		cin>>a[i];
	for(i=0;i<x2;i++)
		cin>>b[i];
	return ;
}
void sort1(int n)
{
	int k,j,tem;
	for(k=1;k<n;k++)
		for(j=0;j<n-k;j++)
			if(a[j]>a[j+1])
				{tem=a[j];
	            a[j]=a[j+1];
	            a[j+1]=tem;}
    return ;
}
void sort2(int n)
{
	int k,j,tem;
		for(k=1;k<n;k++)
			for(j=0;j<n-k;j++)
				if(b[j]>b[j+1])
					{tem=b[j];
		            b[j]=b[j+1];
		            b[j+1]=tem;}
		return ;
}
void combine(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];
	return ;
}

void arraycout(int n1,int n2)
{
	int i;
	cout<<c[0];
	for(i=1;i<n1+n2;i++)
		cout<<" "<<c[i];
	return ;

}
int main()
{   int n1,n2;
    cin>>n1>>n2;
	read(n1,n2);
	sort1(n1);
	sort2(n2);
	combine(n1,n2);
	arraycout(n1,n2);
	return 0;

}


void read(int *a,int *b,int num1,int num2);
void sort(int *a,int num1);
void merge(int *a,int *b,int *c,int num1,int num2);
void print(int *a,int num1);
int main()
{
	int a[100],b[100],c[200];
	int num1,num2;
	cin>>num1>>num2;
	read(a,b,num1,num2);
	sort(a,num1);
	sort(b,num2);
	merge(a,b,c,num1,num2);
	print(c,num1+num2);
	return 0;
}

void read(int *a,int *b,int num1,int num2)
{
	int i;
	for(i=0;i<num1;i++){
		cin>>a[i];
	}
	for(i=0;i<num2;i++){
		cin>>b[i];
	}
}

void sort(int *a,int num1)
{
	int i,j;
	for(i=0;i<num1;i++){
		for(j=i+1;j<num1;j++){
			if(a[i]>a[j]){
				int temp;
				temp=a[i];
				a[i]=a[j];
				a[j]=temp;
			}
		}
	}
}

void merge(int *a,int *b,int *c,int num1,int num2)
{
	int i;
	for(i=0;i<num1;i++){
		c[i]=a[i];
	}
	for(i=num1;i<num1+num2;i++){
		c[i]=b[i-num1];
	}
}

void print(int *a,int num1)
{
	int i;
	for(i=0;i<num1-1;i++){
		cout<<a[i]<<" ";
	}
	cout<<a[num1-1]<<endl;
}


int a[100],b[100],x,y,i,j,k;
void a1();
void b1(int *p,int n);
void c(int *p1,int x,int *p2,int y);
void d(int x,int y);

void a1()
{
	cin>>x>>y;
	for (i=0;i<x;i++)
		cin>>a[i];
	for (i=0;i<y;i++)
		cin>>b[i];
}

void b1(int *p,int n)
{
	for (i=0;i<n-1;i++)
		for (j=0;j<n-1-i;j++)
		{
			if (p[j+1]<p[j])
			{
				k=p[j];
				p[j]=p[j+1];
				p[j+1]=k;
			}
		}
}

void c(int *p1,int x,int *p2,int y)
{
	for (i=x,j=0;i<x+y;j++,i++)
		p1[i]=p2[j];
}

void d(int x,int y)
{
	cout<<a[0];
	for (i=1;i<x+y;i++)
		cout<<" "<<a[i];
}

int main ()
{
	a1();
	b1(a,x);
	b1(b,y);
	c(a,x,b,y);
	d(x,y);
	return 0;
}


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

}
void shuchu1(int a[],int n)
{
	int i;
	for(i=0;i<n-1;i++)
		printf("%d ",a[i]);
    printf("%d",a[n-1]);
}
void shuchu2(int b[],int m)
{
	int i;
	for(i=0;i<m;i++)
		printf(" %d",b[i]);
}
void main()
{
	int a[10],n,b[10],m,i;
	scanf("%d %d",&n,&m);
         scanf("\n");
	for(i=0;i<n-1;i++)
		scanf("%d ",&a[i]);
          scanf("%d",&a[n-1]);
          scanf("\n");
	for(i=0;i<m-1;i++)
		scanf("%d ",&b[i]);
         scanf("%d",&b[m-1]);
	paixu(a,n);
	paixu(b,m);
	shuchu1(a,n);
	shuchu2(b,m);
}


void duqu();
void paixu();
void hebin();
void xianshi();
int a[100], b[100], c[200];
int m, n;
int main() {
	duqu();
	paixu();
	hebin();
	xianshi();
	return 0;
}
void duqu() {

	cin >> m >> n;
	for (int i = 0; i < m; i++)
		cin >> a[i];
	for (int i = 0; i < n; i++)
		cin >> b[i];
}
void paixu() {
	int i = 0, j = 0, t;
	for (i = 0; i < m; i++) {
		for (j = i + 1; j < m; j++) {
			if (a[i] > a[j]) {
				t = a[i];
				a[i] = a[j];
				a[j] = t;
			}
		}
	}
	for (i = 0; i < n; i++) {
		for (j = i + 1; j < n; j++) {
			if (b[i] > b[j]) {
				t = b[i];
				b[i] = b[j];
				b[j] = t;
			}
		}
	}
}
void hebin() {

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

}


int a[100], la, b[100], lb, c[200], lc;

void R(){
	int i;
	cin >> la >> lb;
	for(i = 1;i <= la;i++)
		cin >> a[i];
	for(i = 1;i <= lb;i++)
		cin >> b[i];
	return;
}

void S(int *x, int lx){
	int i, j;
	for(i = 1;i < lx;i++){
		for(j = 1;j <= lx - i;j++){
			if(x[j] > x[j + 1]){
				int t = x[j];
				x[j] = x[j + 1];
				x[j + 1] = t;
			}
		}
	}
	return;
}

void M(){
	int i;
	for(i = 1;i <= la;i++)
		c[i] = a[i];
	for(i = la + 1;i <= la + lb;i++)
		c[i] = b[i - la];
	return;
}

void D(){
	int i;
	for(i = 1;i <= la + lb;i++){
		if(i > 1)
			cout << " ";
		cout << c[i];
	}
	cout << endl;
	return;
}

int main(){
	R();S(a, la);S(b, lb);M();D();
	return 0;
}


void duqu(int m,int a[]);
void paixu(int m,int a[]);
void hebing(int m,int n,int a[],int b[]);
void shuchu(int m,int n,int a[]);
void main()
{
	int x[100]={0},y[100]={0},m,n;
	scanf("%d%d",&m,&n);
	duqu(m,x);
	duqu(n,y);
	paixu(m,x);
	paixu(n,y);
	hebing(m,n,x,y);
	shuchu(m,n,x);
}
void duqu(int m,int a[])
{
	int i;
	for(i=1;i<=m;i++)
		scanf("%d",&a[i]);
}
void paixu(int m,int a[])
{
    int i,j,k;
	for (i=1;i<=m;i++)
       for (j=1;j<=m-i;j++)
           if (a[j]>a[j+1])
		   {k=a[j];a[j]=a[j+1];a[j+1]=k;}
}
 void hebing(int m,int n,int a[],int b[])
{
	int i;
	for(i=m+1;i<=m+n;i++)
		a[i]=b[i-m];
}
void shuchu(int m,int n,int a[])
{
	int i;
	for(i=1;i<m+n;i++)
		printf("%d ",a[i]);
	printf("%d",a[m+n]);
}


int f(int zhengshuchuan[],int changdu)
{
	int i,j,t;
	for(i=0;i<changdu;i++)
	{
		for(j=i;j<changdu;j++)
		{
			if(zhengshuchuan[i]>zhengshuchuan[j])
			{
            t=zhengshuchuan[i];
			zhengshuchuan[i]=zhengshuchuan[j];
			zhengshuchuan[j]=t;
			}
		}
	}
	return 0;
}
main()
{
	int a[200],b[100],i;
	int changdu1,changdu2;
	scanf("%d %d",&changdu1,&changdu2);
	for(i=0;i<changdu1;i++)
	{
          scanf("%d",&a[i]);
	}
		for(i=0;i<changdu2;i++)
	{
          scanf("%d",&b[i]);
	}
		f(a,changdu1);
		f(b,changdu2);
		for(i=0;i<changdu2;i++)
	{
			a[changdu1+i]=b[i];
		}

		for(i=0;i<changdu1+changdu2;i++)
		{
			if(i==0)
				printf("%d",a[0]);
		else	printf(" %d",a[i]);
		}
	return 0;
}


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

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

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

void sort(int a[], int n)
{
	int i, j, temp;
	for(i = 0; i < n-1; i++)
	{
		for(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;
			}
		}
	}
}

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

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

void main()
{
	input();
	sort(a, m);
	sort(b, n);
	combine(a, b, c, m, n);
	output(c, m + n);
}


int paixu(int n,int m)
{
	int i,j,num;
	int shuzu[1000];
	for(i=1;i<=n+m;i++)
	{
		cin>>num;
		shuzu[i]=num;
	}
	for(i=1;i<=n;i++)
	{
		for(j=n-1;j>=i;j--)
		{
			if(shuzu[j]>shuzu[j+1])num=shuzu[j],shuzu[j]=shuzu[j+1],shuzu[j+1]=num;
		}
	}
	for(i=n+1;i<=n+m;i++)
	{
		for(j=n+m-1;j>=i;j--)
		{
			if(shuzu[j]>shuzu[j+1])num=shuzu[j],shuzu[j]=shuzu[j+1],shuzu[j+1]=num;
		}
	}
	for(i=1;i<=n+m;i++)
	{
		if(i==m+n)cout<<shuzu[i];
		else cout<<shuzu[i]<<" ";
	}
	return 0;
}
int main ( )
{
	int n1,n2;
	cin>>n1>>n2;
	paixu(n1,n2);
	return 0;
}


void main()
{
	 int f(int x[],int  X,int y[],int  Y);
 void arr(int  k[],int   K);
	int i,m,n,k;
	int a[1000],b[1000] ;
	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]);
f(a,m,b,n);
k=0;
 for (i=0;i<m+n;i++)
{
	 printf("%d",a[i]);
k++;
if (k<m+n)
printf(" ");
}
}
 int f(int x[],int  X,int y[],int  Y)
{
int j;
	arr(x,X);
	arr(y,Y);

	for (j= X;j<X+Y;j++)
		x[j]=y[j-X];

}
 void arr(int k[],int  K)
 {
	 int i,j,t,d;
	 for (i=0;i< K-1;i++)
	 {
		 d=i;
		 for (j=i+1;j< K;j++)
			 if (k[j]<k[d])
				 d=j;
			 t=k[d];
			 k[d]=k[i];
			 k[i]=t;
	 }
 }


int n,m;
int *pfCompare(const void *a, const void *b)
{
   return *(int*)a-*(int*)b;
}
int shuru(int x,int y)
{
int k;
scanf("%d",&x);
scanf("%d",&y);
int*p=(int*)malloc(x*sizeof(int));
for(k=0;k<=x-1;k++)
scanf("%d",&p[k]);
int*q=(int*)malloc(y*sizeof(int));
for(k=0;k<=y-1;k++)
scanf("%d",&q[k]);
qsort(p,x,sizeof(int),pfCompare);
qsort(q,y,sizeof(int),pfCompare);
int*c=(int*)malloc((x+y)*sizeof(int));
  for (k=0;k<=x-1;k++)
  c[k]=p[k];
  for (k=0;k<=y-1;k++)
  c[x+k]=q[k];
  for(k=0;k<=x+y-2;k++)
  printf("%d ",c[k]);
  printf("%d",c[x+y-1]);
}

main()
{
shuru(n,m);
}


int n, m;
int num1[100], num2[100], num3[1000];
void read(){
	cin >> n >> m;
	for ( int i = 1; i <= n; i ++ ) {
		cin >> num1[i];
	}
	for ( int i = 1; i <= m; i ++ ) {
		cin >> num2[i];
	}
}

void sort( int num1[], int num2[] ) {
	for ( int i = 1; i <= n - 1; i ++ ) {
		for ( int j = 1; j <= n - i; j ++ ) {
			if ( num1[j] > num1[j + 1] ) swap (num1[j], num1[j + 1]);
		}
	}
	for ( int i = 1; i <= m - 1; i ++ ) {
		for ( int j = 1; j <= m - i; j ++ ) {
			if ( num2[j] > num2[j + 1] ) swap (num2[j], num2[j + 1]);
		}
	}
}
void hebing ( int num1[], int num2[], int num3[] ) {
	for ( int i = 1; i <= n + m; i ++ ) {
		if ( i <= n ) num3[i] = num1[i];
		else num3[i] = num2[ i - n ];
	}
}
void display ( int num3[] ) {
	for ( int i = 1; i <= n + m ; i ++ ) {
		if ( i == 1 ) cout << num3[i];
		else cout << " " << num3[i];
	}
}

int main() {
	read();
	sort(num1, num2);
	hebing(num1, num2, num3);
	display(num3);
	return 0;
}


int Compare(const void *elem1, const void *elem2)
{
    return *((int *)(elem1)) - *((int *)(elem2));
}
int main()
{
    int M,N;
    scanf("%d%d",&M,&N);
    int a[100], b[100];
    int i;
    for(i=0;i<M;i++)
    {
        scanf("%d",&a[i]);
    }
    qsort(a,M,sizeof(int),Compare);
    for(i=0;i<M;i++)
    {
        printf("");
    }
    for(i=0;i<N;i++)
    {
        scanf("%d",&b[i]);
    }
    qsort(b,N,sizeof(int),Compare);
    for(i=0;i<N;i++)
    {
        printf("");
    }
    int c[200];
    for(i=0;i<M;i++)
    {
        c[i]=a[i];
    }
    int j;
    for(j=0;j<N;j++,i++)
    {
        c[i]=b[j];
    }
    for(i=0;i<M+N-1;i++)
    {
        printf("%d ",c[i]);
    }
    printf("%d",c[i]);
}


int na,nb;
int *a,*b;
void input()
{
scanf("%d %d",&na,&nb);
a=(int*)malloc(na*sizeof(int));
b=(int*)malloc(nb*sizeof(int));
for(int i=0;i<na;i++)
scanf("%d",&a[i]);
for(int i=0;i<nb;i++)
scanf("%d",&b[i]);
}

int pfC(const void *x ,const void *y)
{
    int t;
    t=*((int*)x)-*((int*)y);
    return t;
}
void order()
{
qsort(a,na,sizeof(int),pfC);
qsort(b,nb,sizeof(int),pfC);
}

void print()
{
printf("%d",a[0]);
for(int i=1;i<na;i++)
printf(" %d",a[i]);
for(int i=0;i<nb;i++)
printf(" %d",b[i]);
}

main()
{
input();
order();
print();
}


void main()
{   int a[999];
    int b[999];
    int c[999]={0};
    int m,n,i,s;

	void read(int arr_1[],int arr_2[],int x,int y);
	void f(int arr_1[],int arr_2[],int x,int y);
	void combine(int arr_1[],int arr_2[],int arr_3[],int x,int y);
	scanf("%d%d",&m,&n);
     read(a,b,m,n);
     f(a,b,m,n);
     combine(a,b,c,m,n);
    s=m+n;
	for(i=0;i<s;i++)
	{if(i<s-1)
	printf("%d ",c[i]);
	else
	 printf("%d\n",c[i]);}
}

	void read(int arr_1[],int arr_2[],int x,int y)
	{int i,j;
	 for(i=0;i<=x-1;i++)
	 scanf("%d",&arr_1[i]);
	 for(j=0;j<=y-1;j++)
		scanf("%d",&arr_2[j]);}

  	void f(int arr_1[],int arr_2[],int x,int y)
   {  int i,j,t;
     for(j=0;j<x-1;j++)
       for(i=0;i<x-j-1;i++)
       if(arr_1[i]>arr_1[i+1])
	 {
	   t=arr_1[i];
       arr_1[i]=arr_1[i+1];
       arr_1[i+1]=t;}

     for(j=0;j<y-1;j++)
       for(i=0;i<y-j-1;i++)
       if(arr_2[i]>arr_2[i+1])
	 {
	   t=arr_2[i];
       arr_2[i]=arr_2[i+1];
       arr_2[i+1]=t;}}

	void combine(int arr_1[],int arr_2[],int arr_3[],int x,int y)
	{      int k;
		 for(k=0;k<=x-1;k++)
		arr_3[k]=arr_1[k];
       for(k=x;k<=x+y-1;k++)
	   arr_3[k]=arr_2[k-x];
  }


int a[100], b[100], c[100],n,m,i,j,k;

void get_array();
void sort_array();
void combine_array();
void print_array();

int main ()
{
	get_array();

	sort_array();

	combine_array();

	print_array();

	return 0;
}

void get_array()
{
	cin >> n >> m;
	for (i = 0; i < n; i++)
		cin >> a[i];
	for (i = 0; i < m; i++)
		cin >> b[i];
}
void sort_array()
{
	int temp = 0;
	for (i = 0; i < n-1; i++)
		for (j = 0; j < n-1-i; j++)
		{
			if (a[j] > a[j+1])
			{
				temp = a[j];
				a[j] = a[j+1];
				a[j+1] = temp;
			}
		}
	for (i = 0; i < m-1; i++)
		for (j = 0; j < m-1-i; j++)
		{
			if (b[j] > b[j+1])
			{
				temp = b[j];
				b[j] = b[j+1];
				b[j+1] = temp;
			}
		}

}
void combine_array()
{
	for (i = 0; i < n; i++)
	{
		c[i] = a[i];
	}
	for (i = 0; i < m; i++)
	{
		c[i+n] = b[i];
	}
}
void print_array()
{
	cout << c[0];
	for (i = 1; i < m+n; i++)
		cout <<' '<< c[i];
	cout << endl;

}


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 ipt(int a[],int n)
{
    int i=1;
    while(i<=n)
    {
        scanf("%d",&a[i]);
        if(i!=n) scanf(" ");
        i++;
    }
}

void opt(int a[],int n)
{
    int i=1;
    while(i<=n)
    {
        printf("%d",a[i]);
        if(i!=n) printf(" ");
        i++;
    }
}

main()
{
    int n,m,a[100],b[100];
    scanf("%d%d",&n,&m);
    ipt(a,n);
    ipt(b,m);
    sort(a,n);
    sort(b,m);
    opt(a,n);
    printf(" ");
    opt(b,m);
}


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

void enter(int array0[],int p)
{
int i;
for (i=0;i<p;i++)
scanf("%d",&array0[i]);
}

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

void paste(int array1[],int array2[])
{
int i;
for (i=0;i<m;i++)
c[i]=array1[i];
for (i=m;i<m+n;i++)
c[i]=array2[i-m];
}

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

void main()
{
scanf("%d %d",&m,&n);
enter(a,m);
enter(b,n);
sort(a,m);
sort(b,n);
paste(a,b);
out(c,m+n);
}


void paixu(int a[],int m)
{
int i,j,d;
for(i=0;i<m;i++)
{
for(j=i+1;j<m;j++)
{
if(a[i]>a[j])
{
d=a[i];
a[i]=a[j];
a[j]=d;
}
}
}
return;
}
void hebing(int a[],int b[],int m,int n)
{
int i;
printf("%d",a[0]);
for(i=1;i<m;i++)
printf(" %d",a[i]);
for(i=0;i<n;i++)
printf(" %d",b[i]);
return;
}

int main()
{
int m,n,a[100],b[100],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]);
}
paixu(a,m);
paixu(b,n);
hebing(a,b,m,n);
return 0;
}


int n,m,a[100],b[100];
void input()
{
	int j,k;
	scanf("%d %d",&n,&m);
	for(j=0;j<n;j++)
		scanf("%d",&a[j]);
	for(k=0;k<m;k++)
		scanf("%d",&b[k]);
}
void arrange(int n,int m,int x[],int y[])
{
	int j,k,t;
	for(j=0;j<n-1;j++)
		for(k=0;k<n-1-j;k++)
			if(x[k]>x[k+1])
			{
				t=x[k];
				x[k]=x[k+1];
				x[k+1]=t;
			}
	for(j=0;j<m-1;j++)
		for(k=0;k<m-1-j;k++)
			if(y[k]>y[k+1])
			{
	            t=y[k];
				y[k]=y[k+1];
				y[k+1]=t;
			}
}
void combine(int n,int m,int x[],int y[])
{
	int i;
	for(i=0;i<m;i++)
		x[n+i]=y[i];
}
void print(int n,int m,int x[])
{
	int i;
	for(i=0;i<m+n-1;i++)
		printf("%d ",x[i]);
	printf("%d",x[m+n-1]);
}

void main()
{
	input();
	arrange(n,m,a,b);
	combine(n,m,a,b);
	print(n,m,a);
}


int main()
{
	void qz(int s[],int m);
	void px(int s[],int m);
	void hb(int s[],int t[],int m,int n);
	void xs(int s[],int m);
	int n,m;
	int a[200],b[200];
	scanf("%d%d",&m,&n);
	qz(a,m);
	qz(b,n);
    px(a,m);
	px(b,n);
	hb(a,b,m,n);
	xs(a,m+n);
	return 0;
}
void qz(int s[],int m)
{
	int i;
	for(i=0;i<m;i++)
	{
		scanf("%d",&s[i]);
	}
}
void px(int s[],int m)
{
	int i,j,t;
	for(i=0;i<=m-1;i++)
	{
        for(j=i+1;j<=m-1;j++)
		{
			if(s[j]<s[i])
			{
				t=s[i];
				s[i]=s[j];
				s[j]=t;
			}
		}
	}
}
void hb(int s[],int t[],int m,int n)
{
	int i;
	for(i=m;i<=m+n-1;i++)
	{
		s[i]=t[i-m];
	}
}
void xs(int s[],int m)
{
	int i;
     printf("%d",s[0]);
	 for(i=1;i<m;i++)
	 {
		 printf(" %d",s[i]);
	 }
}


int *p,*q,*s;
int m,n;

int pfCompare(const void *elem1, const void *elem2)
{
    return *(int *)elem1-*(int *)elem2;
}

int input()
{
    int i;
    scanf("%d %d",&m,&n);
    p=(int *)malloc(m*sizeof(int));
    q=(int *)malloc(n*sizeof(int));
    for(i=0;i<m;i++)
        scanf("%d",&p[i]);
    for(i=0;i<n;i++)
        scanf("%d",&q[i]);
}

int downsort()
{
    qsort(p,m,sizeof(int),pfCompare);
    qsort(q,n,sizeof(int),pfCompare);
}

int combine()
{
    s=(int *)malloc((m+n)*sizeof(int));
    int i;
    for(i=0;i<m;i++)
        s[i]=p[i];
    for(i=m;i<m+n;i++)
        s[i]=q[i-m];
}

int output()
{
    int i;
    printf("%d",s[0]);
    for(i=1;i<m+n;i++)
        printf(" %d",s[i]);
    free(p);
    free(q);
    free(s);
}

main()
{
    input();
    downsort();
    combine();
    output();
}


void sheng(int *a,int n)
{
        int i,j,b;
        for(i=0;i<n;i++)
        {
        for(j=i;j<n;j++)
        {
        if (a[j]<a[i])

          {
          b=a[i];
          a[i]=a[j];
          a[j]=b;
          }
          }
        }
}
int hebing(int* a ,int n,int *b ,int m,int *c)
{

       int i;
       for(i=0;i<n;i++)
       c[i]=a[i];
       for(i=n;i<m+n;i++)
       c[i]=b[i-n];
       return *c;
}
int main()
{
int n,m,i;
scanf("%d %d",&n,&m);
int *a=(int*)malloc(sizeof(int)*n);
int *b=(int*)malloc(sizeof(int)*m);
int *c=(int*)malloc(sizeof(int)*(m+n));
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<m;i++)
scanf("%d",&b[i]);
sheng(a,n);
sheng(b,m);
hebing(a,n,b,m,c);
printf("%d",c[0]);
for(i=1;i<m+n;i++)
printf(" %d",c[i]);

}


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


int Compare(const void *elem1,const void *elem2)
{
	return *((int *)elem1)-*((int *)elem2);
}
int main()
{
	int m,n;
	int a[100],b[100];
	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]);
	}
	qsort(a,m,sizeof(int),Compare);
	qsort(b,n,sizeof(int),Compare);
	for(i=0;i<m;i++)
	{
		printf("%d ",a[i]);
	}
	for(i=0;i<n-1;i++)
	{
		printf("%d ",b[i]);
	}
	printf("%d",b[n-1]);
}


int len1, len2, array1[100], array2[100],sa[100];
void zp1(int a1[100], int l1) {
	int cur1;
	for (int i = 0; i < l1 - 1; i++)
		for (int j = 0; j < l1 - 1 - i; j++)
			if (a1[j] > a1[j + 1]) {
				cur1 = a1[j];
				a1[j] = a1[j + 1];
				a1[j + 1] = cur1;
			}
}
void zp2(int a2[100], int l2) {
	int cur2;
	for (int i = 0; i < l2 - 1; i++)
		for (int j = 0; j < l2 - 1 - i; j++)
			if (a2[j] > a2[j + 1]) {
				cur2 = a2[j];
				a2[j] = a2[j + 1];
				a2[j + 1] = cur2;
			}
}
void connection(int a1[100],int a2[100])
{
	for (int i=0;i<len1;i++)
		sa[i]=array1[i];
	for (int i=len1;i<len1+len2;i++)
		sa[i]=array2[i-len1];
}

int main() {

	cin >> len1 >> len2;
	for (int i=0;i<len1;i++)
		cin>>array1[i];
	for (int i=0;i<len2;i++)
		cin>>array2[i];
	zp1(array1, len1);
	zp2(array2, len2);
	connection(array1, array2);
	cout<<sa[0];
	for (int i=1;i<len1+len2;i++)
		cout<<" "<<sa[i];
	cout<<endl;
	return 0;
}


int a[10000];
int b[10000];
int n,m;
void du()
{
cin>>n>>m;
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=0;i<m;i++)
cin>>b[i];
}
void ran()
{
 for(int i=0;i<n;i++)
  { int temp=a[i];
           for(int j=i-1;j>=0;j--)
     {
         if(a[j]<=temp)
          {  a[j+1]=temp;break;}
         else   {a[j+1]=a[j];a[j]=temp;}

   }
}

 for(int i=0;i<m;i++)
  { int temp=b[i];
           for(int j=i-1;j>=0;j--)
     {
         if(b[j]<=temp)
          {  b[j+1]=temp;break;}
         else   {b[j+1]=b[j];b[j]=temp;}

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

     }
void shu()
{
for(int i=0;i<n+m-1;i++)
    cout<<a[i]<<' ';
  cout<<a[n+m-1];
     }
int main()
{
du();
ran();
he();
shu();

   return 0;

}


void input(int,int,int*,int*);//????
void paixu(int *,int);//?????
void output(int,int,int*,int*);//????

int main()
{
    int num1,num2,shu1[10000],shu2[10000];
    cin>>num1>>num2;//??????
    input(num1,num2,shu1,shu2);//????
    paixu(shu1,num1);//???1??
    paixu(shu2,num2);//???2??
    output(num1,num2,shu1,shu2);//????
    cin.get();cin.get();cin.get();cin.get();
    return 0;
}
void input(int m,int n,int shu1[],int shu2[])//????
{
     int i;
     for(i=0;i<m;i++) cin>>shu1[i];
     for(i=0;i<n;i++) cin>>shu2[i];
}
void paixu(int shu[],int m)
{
     int i,j,temp;
     for(i=0;i<m-1;i++)//????
     {
                          for(j=0;j<m-i-1;j++)
                          {
                                            if (shu[j]>shu[j+1])
                                            {
                                                                temp=shu[j+1];
                                                                shu[j+1]=shu[j];
                                                                shu[j]=temp;
                                            }
                          }
     }
}
void output(int m,int n,int a[],int b[])
{
     int i;
     for(i=0;i<m;i++) cout<<a[i]<<" ";
     for(i=0;i<n-1;i++) cout<<b[i]<<" ";
     cout<<b[n-1];
}


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

void read()
{
    cin>>m>>n;//num of a,num of b
    for(int i=1;i<=m;i++)
        cin>>a[i];
    for(int i=1;i<=n;i++)
        cin>>b[i];
}

void sort_()
{
    sort(a+1,a+m+1);
    sort(b+1,b+n+1);
}

void stick()
{
    for(int i=1;i<=n;i++)
        a[m+i]=b[i];
}

void print()
{
    for(int i=1;i<m+n;i++)
    cout<<a[i]<<' ';
    cout<<a[m+n];
}

int main()
{
    read();
    sort_();
    stick();
    print();

    return 0;
}


int a[100],b[100];
int n_a,n_b;
void input();
void sort();
void output();
int main()
{
	input();
	sort();
	output();
	return 0;
}
void input()
{
	int i;
	cin>>n_a>>n_b;
	for(i=0;i<n_a;i++)
		cin>>a[i];
	for(i=0;i<n_b;i++)
		cin>>b[i];
}
void sort()
{
	int i,j,t;
	for(i=0;i<n_a-1;i++)
	{
		for(j=i+1;j<n_a;j++)
		{
			if(a[i]>a[j])
			{
				t=a[i];a[i]=a[j];a[j]=t;
			}
		}
	}
	for(i=0;i<n_b-1;i++)
	{
		for(j=i+1;j<n_b;j++)
		{
			if(b[i]>b[j])
			{
				t=b[i];b[i]=b[j];b[j]=t;
			}
		}
	}
}
void output()
{
	int i;
	for(i=0;i<n_a;i++)
		cout<<a[i]<<" ";
	for(i=0;i<n_b;i++)
	{
		cout<<b[i];
		if(i<n_b-1)
			cout<<" ";
	}
}


int a[100],b[100];
int n,m;
main()
{
void input(void);
void order1(void);
void order2(void);
void output(void);
input();
order1();
order2();
output();
}

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

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

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

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


int first[100];
int second[100];
int combination[200];
int a,b; //??????
void cin_number()
{
	int i;
	cin >>a>>b;
	for (i=0;i<a;i++)
	{
		cin >>first[i];
	}
	for (i=0;i<b;i++)
	{
		cin >>second[i];
	}
}   //?????????????????
void rank()
{
	int i,j,temp;
	for (i=(a-1);i>0;i--)
	{
		for (j=0;j<i;j++)
		{
			if (first[j]>first[j+1])
			{
				temp=first[j];
				first[j]=first[j+1];
				first[j+1]=temp;
			}
		}
	}
	for (i=(b-1);i>0;i--)
	{
		for (j=0;j<i;j++)
		{
			if (second[j]>second[j+1])
			{
				temp=second[j];
				second[j]=second[j+1];
				second[j+1]=temp;
			}
		}
	}
}
void combine()
{
	int i;
	for (i=0;i<a;i++)
	{
		combination[i]=first[i];
	}
	for (i=0;i<b;i++)
	{
		combination[a+i]=second[i];
	}
}
void cout_combination()
{
	int i;
	for (i=0;i<(a+b-1);i++)
		cout <<combination[i]<<" ";
	cout <<combination[i]<<endl;
}
int main()
{
	cin_number();
	rank();
	combine();
	cout_combination();
	return 0;
}


int a[200],b[100];
int a1,b1;

void read()
{	int i,j;
	scanf("%d %d",&a1,&b1);
	for(i=0;i<a1;i++)
	{	scanf("%d",&a[i]);
	}
	for(j=0;j<b1;j++)
	{	scanf("%d",&b[j]);
	}
}

void ex(int *a,int *b)
{	int temp;
	temp=*a;
	*a=*b;
	*b=temp;
}

void bubblesort1(int *p,int m,int n)
{	int i,j;
	for(i=n;i>0;i--)
		for(j=m;j<i;j++)
			if(*(p+j)>*(p+j+1))
				ex(p+j,p+j+1);
}

void sort()
{}

void and()
{	int i;
	for(i=0;i<b1;i++)
	{	a[a1+i]=b[i];
	}
}

void prt()
{int i;
	for(i=0;i<a1+b1;i++)printf("%d%c",a[i],(i<a1+b1-1)?' ':'\n');
}
void main()
{
	read();
	bubblesort1(a,0,a1-1);bubblesort1(b,0,b1-1);
	and();
	prt();
}


/*
 * ModularizedProgramming.cpp
 *
 *  Created on: 2012-11-23
 *      Author: Cui Zhaoxiong Class4 1200012931
 */
int a[200];
int b[100];
int lena = 0;//a?????
int lenb = 0;//b?????
void Input() {//??
	cin >> lena >> lenb;
	for (int i = 0; i < lena; i++) {
		cin >> a[i];
	}
	for (int i = 0; i < lenb; i++) {
		cin >> b[i];
	}
}
void Sort() {//??
	for (int i = 1; i <= lena - 1; i++) {
		for (int j = 0; j <= lena - 1 - i; j++) {
			if (a[j] > a[j + 1]) {
				int temp = a[j];
				a[j] = a[j + 1];
				a[j + 1] = temp;
			}
		}
	}
	for (int i = 1; i <= lenb - 1; i++) {
		for (int j = 0; j <= lenb - 1 - i; j++) {
			if (b[j] > b[j + 1]) {
				int temp = b[j];
				b[j] = b[j + 1];
				b[j + 1] = temp;
			}
		}
	}
}
void Catenate() {//??
	for (int i = 0; i <= lenb - 1; i++) {
		a[lena + i] = b[i];
	}
}
void Output() {//??
	cout << a[0];
	for (int i = 1; i <= lena + lenb - 1; i++) {
		cout << ' ' << a[i];
	}
}
int main() {//???
	Input();
	Sort();
	Catenate();
	Output();
	return 0;
}


void input(void);
void sort(int *a,int n,int *b,int m);
void merger(int *a,int n,int *b,int m);
void output(int *a,int n,int m);
int n,m,a[200],b[100];
void input(void)
{
	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]);
}
void sort(int *a,int n,int *b,int m)
{
	int i,j,min,temp;
	for(i=0;i<n-1;i++)
	{
		min=i;
		for(j=i+1;j<n;j++)
			if(a[j]<a[min])
				min=j;
		if(min!=i)
		{
			temp=a[i];
			a[i]=a[min];
			a[min]=temp;
		}
	}
    for(i=0;i<m-1;i++)
	{
		min=i;
		for(j=i+1;j<m;j++)
			if(b[j]<b[min])
				min=j;
		if(min!=i)
		{
			temp=b[i];
			b[i]=b[min];
			b[min]=temp;
		}
	}
}

void merger(int *a,int n,int *b,int m)
{
	int i,j;
	for(i=n,j=0;i<n+m,j<m;i++)
		a[i]=b[j++];
}

void output(int *a,int n,int m)
{
	int i;
	for(i=0;i<n+m-1;i++)
		printf("%d ",a[i]);
	printf("%d\n",a[n+m-1]);
}
void main()
{
	input();
	sort(a,n,b,m);
	merger(a,n,b,m);
	output(a,n,m);
}


void read(int*,int*);
main()
{
      int a[100000],b[100000];
      read(a,b);
}
void read(int*a,int*b)
{
    int i,n1,n2;
    void bubble(int*,const int);
    void print1(int*,int n);
    void print2(int*,int n);
    scanf("%d %d",&n1,&n2);
    for(i=0;i<=n1-1;i++)
    scanf("%d",&a[i]);
    for(i=0;i<=n2-1;i++)
    scanf("%d",&b[i]);
    bubble(a,n1);
    bubble(b,n2);
    print1(a,n1);
    print2(b,n2);
}
void bubble(int *a,const int n)
{
     int pass,i;
     void swap(int*,int*);
     for(pass=1;pass<=n-1;pass++)
     for(i=0;i<=n-2;i++)
     if(a[i]>=a[i+1])
     swap(&a[i],&a[i+1]);
}
void swap(int *a,int *b)
{
         int hold;
         hold=*a;
         *a=*b;
         *b=hold;
}
void print1(int *a,int n)
{
     int i;
     for(i=0;i<=n-1;i++)
     {
                        printf("%d",a[i]);
                        printf(" ");
     }
}
void print2(int *a,int n)
{
     int i;
     for(i=0;i<=n-2;i++)
     {
                        printf("%d",a[i]);
                        printf(" ");
     }
     printf("%d",a[n-1]);
}


void read(int a[],int b[]);
void sort(int a[],int b[]);
void link(int a[],int b[]);
void output(int a[]);
int input1[100],input2[100],n1,n2;
int main()
{
	read(input1,input2);
	sort(input1,input2);
	link(input1,input2);
	output(input1);
	return 0;
}
void read(int a[],int b[])
{
	int i;
	cin >>n1 >>n2;
	for (i=0;i<n1;i++)
		cin >>a[i];
    for (i=0;i<n2;i++)
		cin >>b[i];
}
void sort(int a[],int b[])
{
    int i,j,temp;
	for (i=0;i<n1-1;i++)
       for (j=i+1;j<n1;j++)
		if (a[j]<a[i])
		{
			temp=a[j];
			a[j]=a[i];
			a[i]=temp;
		}
	for (i=0;i<n2-1;i++)
       for (j=i+1;j<n2;j++)
		if (b[j]<b[i])
		{
			temp=b[j];
			b[j]=b[i];
			b[i]=temp;
		}
}
void link(int a[],int b[])
{
	int i;
	for (i=0;i<n2;i++)
		a[n1+i]=b[i];
}
void output(int a[])
{
	int i;
	for (i=0;i<n1+n2-1;i++)
		cout <<a[i] <<" ";
	cout <<a[n1+n2-1];
}


int m,n;
int a[100],b[100];
void getarr(void)
{
int i;
cin>>m>>n;
for(i=1;i<=m;i++)
  cin>>a[i];
for(i=1;i<=n;i++)
  cin>>b[i];
}
void sortarr(void)
{
int i,j,p;
for(i=1;i<m;i++)
  for(j=1;j<=m-i;j++)
     if(a[j]>a[j+1])
        {
		p=a[j];
		a[j]=a[j+1];
		a[j+1]=p;
		}
for(i=1;i<n;i++)
  for(j=1;j<=n-i;j++)
     if(b[j]>b[j+1])
        {
		p=b[j];
		b[j]=b[j+1];
		b[j+1]=p;
		}
}
void combarr(void)
{
int i;
for(i=m+1;i<=m+n;i++)
    a[i]=b[i-m];
}
void printarr(void)
{
int i;
for(i=1;i<=m+n-1;i++)
   cout<<a[i]<<" ";
cout<<a[i];
}
int main()
{
getarr();
sortarr();
combarr();
printarr();
return 0;
}


void scan_(int m,int*a,int n,int*b);
void sort_(int m,int*a,int n,int*b);
void print_(int m,int*a,int n,int*b);

int main()
{
int m,n,*a,*b;
scanf("%d %d",&m,&n);
a=(int*)malloc(m*sizeof(int));
b=(int*)malloc(n*sizeof(int));
scan_(m,a,n,b);
sort_(m,a,n,b);
print_(m,a,n,b);
return 0;
}

void scan_(int m,int*a,int n,int*b)
{
    int i,j,*p;      //????????????

    p=a;
    for(i=0;i<m;i++) //???????????????????? ??
    scanf("%d",p++);
    p=b;
    for(j=0;j<n;j++)
    scanf("%d",p++);

}

void sort_(int m,int*a,int n,int*b)
{
  int i,j,t,*q;
  for(i=0;i<m-1;i++)
  {
      q=a;
      for(j=0;j<m-1-i;j++)
      {
        if(*q>*(q+1))  {t=*q;*q=*(q+1);*(q+1)=t;}
        q++;
       }
   }

  for(i=0;i<n-1;i++)
  {
        q=b;
        for(j=0;j<n-1-i;j++)
      {
        if(*q>*(q+1))  {t=*q;*q=*(q+1);*(q+1)=t;}
        q++;
      }
  }
}

void print_(int m,int*a,int n,int*b)
{
int i,*p;
printf("%d",*a);
p=a+1;
for(i=1;i<m;i++,p++)
printf(" %d",*p);
p=b;
for(i=0;i<n;i++,p++)
printf(" %d",*p);
printf("\n");
}


void guochen(int array[],int n)
{
	int a,i,j;
	for(a=0;a<n;a++)
		scanf("%d",&array[a]);
	for(i=0;i<n-1;i++)
	{
		for(j=i+1;j<n;j++)
		{
			if(array[j]<array[i])
			{
				int k;
				k=array[i];
				array[i]=array[j];
				array[j]=k;
			}
		}
	}
}
void shuchu(int one[],int n,int two[],int m)
{
	int i,j;
	printf("%d",one[0]);
	for(i=1;i<n;i++)
		printf(" %d",one[i]);
	for(j=0;j<m;j++)
		printf(" %d",two[j]);
}
void main()
{
	int n,m,one[100],two[100];
	scanf("%d %d",&n,&m);
	guochen(one,n);
	guochen(two,m);
	shuchu(one,n,two,m);
}


int num[2];
int a[100], b[100], c[100];
void getarray(int a[], int b[], int num[])
{
	cin >> num[0] >> num[1];
	for (int i = 0; i < num[0] ; i++)
		cin >> a[i];
	for (int i = 0 ;i < num[1] ; i++)
		cin >> b[i];
}
void sort(int a[],int b[] ,int af ,int bf)
{
	int temp;
	for (int i = 0 ; i < af - 1; i++)
	{
		for (int j = 1 ; j < af - i ; j++)
		{
			if (a[j] < a[j-1])
			{
				temp = a[j];
				a[j] = a[j - 1];
				a[j - 1] = temp;
			}
		}
	}
	for (int i = 0 ; i < bf - 1; i++)
	{
		for (int j = 1 ; j < bf - i ; j++)
		{
			if (b[j] < b[j-1])
			{
				temp = b[j];
				b[j] = b[j - 1];
				b[j - 1] = temp;
			}
		}
	}
}
void combine(int a[],int b[], int c[], int af, int bf)
{
	for (int i = 0 ; i < af ; i++)
		c[i] = a[i];
	for (int i = af; i < af + bf ;i++)
		c[i] = b[i - af];
}
void print(int c[],int af, int bf)
{
	cout << c[0];
	for (int i = 1 ; i < af + bf ; i++)
		cout << ' ' << c[i];
}
int main()
{
	getarray(a,b,num);
	sort(a,b,num[0],num[1]);
	combine(a,b,c,num[0],num[1]);
	print(c,num[0],num[1]);
}


int a[10000],b[10000];
int sizea,sizeb;
void read(){
	cin>>sizea>>sizeb;
	int i;
	for(i=0;i<=sizea-1;i++)
		cin>>a[i];
	for(i=0;i<=sizeb-1;i++)
		cin>>b[i];
}
void order(int n,int a[]){
	int i,j;
	int temp;
	for(i=n-1;i>=1;i--)
		for(j=0;j<=i-1;j++)
			if(a[j]>a[j+1])
			{
				temp=a[j];a[j]=a[j+1];a[j+1]=temp;
			}
}
void paixu(){
	order(sizea,a);
	order(sizeb,b);
}
void mix(){
	int i;
	for(i=0;i<=sizeb-1;i++)
		a[sizea+i]=b[i];
}
void print (){
	cout<<a[0];
	for(int i=1;i<=sizea+sizeb-1;i++)
		cout<<" "<<a[i];
}
int main(){
	read();
	paixu();
	mix();
	print();
}


int a[20],b[20],c[40],m,n,i,j,temp;
void main()
{
	void putin(int a[20],int b[20]);
	void exchange(int a[20],int b[20]);
	void together(int a[20],int b[20]);
	void putout(int c[40]);
	putin(a,b);
	exchange(a,b);
	together(a,b);
	putout(c);
}
void putin(int a[20],int b[20])
{
	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 exchange(int a[20],int b[20])
{
	for(i=0;i<m-1;i++)
	{
		for(j=0;j<m-1-i;j++)
		{
			if(a[j]>a[j+1])
			{
				temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}
		}
	}

    for(i=0;i<n-1;i++)
	{
		for(j=0;j<n-1-i;j++)
		{
			if(b[j]>b[j+1])
			{
				temp=b[j];
				b[j]=b[j+1];
				b[j+1]=temp;
			}
		}
	}
}
void together(int a[20],int b[20])
{
	for(i=0;i<m;i++) c[i]=a[i];
	for(i=0;i<n;i++) c[m+i]=b[i];
}
void putout(int c[40])
{
	for(i=0;i<m+n;i++)
	{
		printf("%d",c[i]);
		if(i!=m+n-1) printf(" ");
	}
}


 int *p,*q,m,n;
void shuru()
{
    scanf("%d%d",&m,&n);
    p=(int*)malloc(m*sizeof(int));
    q=(int*)malloc(n*sizeof(int));
	for (int i=0;i<m;i++)
	scanf("%d",p+i);
	for (int i=0;i<n;i++)
	scanf("%d",q+i);
}
static int cmp(const void *a, const void *b)
{
	return *(int *)a - *(int *)b;
}
void shuchu()
{
	for(int i=0;i<m;i++)
    printf("%d ",*(p+i));
	for(int i=0;i<n-1;i++)
	printf("%d ",*(q+i));
	printf("%d",*(q+n-1));
}
main()
{
    shuru();
	qsort(p,m,sizeof(int),cmp);
	qsort(q,n,sizeof(int),cmp);
	shuchu();
}


void input();
void arrange();
void add();
void output();
int a[100],b[100],c[200],n1,n2;
void main()
{
	input();
	arrange();
	add();
	output();
}
void input()
{
	int i,j;
	scanf("%d %d",&n1,&n2);
	for(i=0;i<n1;i++)
		scanf("%d",&a[i]);
	for(j=0;j<n2;j++)
		scanf("%d",&b[j]);
}

void arrange()
{
	int i,j,temp;
	for(i=0;i<n1;i++)
		for(j=i;j<n1;j++)
			if(a[i]>a[j])
		{
			temp=a[i];
			a[i]=a[j];
			a[j]=temp;
		}
	for(i=0;i<n2;i++)
		for(j=i;j<n2;j++)
			if(b[i]>b[j])
		{
			temp=b[i];
			b[i]=b[j];
			b[j]=temp;
		}
}
void add()
{
	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 output()
{
	int i;
	for(i=0;i<n1+n2;i++)
	{
		printf("%d",c[i]);
		if(i<n1+n2-1) printf(" ");
		else printf("\n");
	}

}


int main()
{
	int number1[100]={0},number2[100]={0};//????
	int len1=0,len2=0;
	cin>>len1>>len2;
	void getarray(int number[],int len);
	void rank(int number[],int len);
	void add(int number1[],int number2[],int len1,int len2);
	void print(int number[],int len1,int len2);
	getarray(number1,len1);//????????
	getarray(number2,len2);
	rank(number1,len1);         //??????????
	rank(number2,len2);
	add(number1,number2,len1,len2);//?????????
	print(number1,len1,len2);//????????
	return 0;
}
void getarray(int number[],int len)
{
	int i=0;
	for(i=0;i<len;i++)
		cin>>number[i];
}
void rank(int number[],int len)
{
	int i,j,temp;//i,j?????,temp?????
	for(i=0;i<len;i++)//??
	{
		for(j=i+1;j<len;j++)
		{
			if(number[i]>number[j])
			{
				temp=number[i];
				number[i]=number[j];
				number[j]=temp;
			}
		}
	}
}
void add(int number1[],int number2[],int len1,int len2)
{
	int i=0;//i?????
	for(i=0;i<len2;i++)
		number1[i+len1]=number2[i];
}
void print(int number[],int len1,int len2)
{
	int i;
	for(i=0;i<len1+len2-1;i++)
		cout<<number[i]<<' ';
	cout<<number[len1+len2-1];
}


void print(int a[],int x)
{
	int i;
	printf("%d",a[0]);
	for(i=1;i<x;i++)
		printf(" %d",a[i]);
}
void paixu(int a[],int x)
{
	int i,j,m;
	for(i=0;i<x;i++)
		for(j=i+1;j<x;j++)
		{
			if(a[i]>a[j])
			{
				m=a[i];
				a[i]=a[j];
				a[j]=m;
			}
		}
	print(a,x);
}
void scan(int t)
{
	int m,n,a[10],i;
	scanf("%d%d",&m,&n);
	for(i=0;i<m;i++)
	{
		scanf("%d",&a[i]);
	}
	paixu(a,m);
	printf(" ");
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}
	paixu(a,n);
}
void main()
{

	scan(0);
}


int m,n,a[500],b[200],temp;
void read(void)                                    //??
{
	cin>>m>>n;
	for(int i=0;i<m;i++) cin>>a[i];
	for(int i=0;i<n;i++) cin>>b[i];
}

void rank(void)                                    //??
{
	for(int i=0;i<m-1;i++)
		for(int j=0;j<m-i-1;j++)
		{
			if(a[j]>a[j+1])
			{
				temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}
		}
	for(int i=0;i<n-1;i++)
			for(int j=0;j<n-i-1;j++)
			{
				if(b[j]>b[j+1])
				{
					temp=b[j];
					b[j]=b[j+1];
					b[j+1]=temp;
				}
			}
}

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

void show(void)                                      //??
{
	for(int i=0;i<m+n-1;i++) cout<<a[i]<<' ';
	cout<<a[m+n-1];
}

int main(void)
{
      read();
      rank();
      merge();
      show();
      return 0;
}


void get(int m,int n);
void swap(int m,int n);
void put(int m,int n);
int a[1001],b[1001];
void main()
{
	int m,n;
	scanf("%d%d",&m,&n);
	get(m,n);
	swap(m,n);
	put(m,n);
}
void get(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 swap(int m,int n)
{
	int j,k,c;
	for(j=0;j<m-1;j++)
		for(k=0;k<m-1-j;k++)
			if(a[k]>a[k+1]){
				c=a[k];
				a[k]=a[k+1];
				a[k+1]=c;
			}
	for(j=0;j<n-1;j++)
		for(k=0;k<n-1-j;k++)
			if(b[k]>b[k+1]){
				c=b[k];
				b[k]=b[k+1];
				b[k+1]=c;
			}
}
void put(int m,int n)
{
	int l;
	for(l=0;l<m;l++)
		printf("%d ",a[l]);
	for(l=0;l<n;l++){
		if(l==n-1)
			printf("%d",b[l]);
		else
			printf("%d ",b[l]);
	}
}


int paixu(int shuzu[],int num)
{
    int i,j,jiaohuan;
    for(i=1;i<num;i++)
    {
                      for(j=0;j<num-i;j++)
                      {
                            if(shuzu[j]>shuzu[j+1])
                            {
                                                   jiaohuan=shuzu[j];
                                                   shuzu[j]=shuzu[j+1];
                                                   shuzu[j+1]=jiaohuan;
                            }
                      }
     }
}//???????????
int hebing(int shuzu1[],int num1,int shuzu2[],int num2)
{
    int i;
    for(i=0;i<num2;i++)shuzu1[i+num1]=shuzu2[i];
}//????1???2
int main()
{
    int shuzu1[200],shuzu2[100],num1,num2,i,j;
    cin>>num1>>num2;
    for(i=0;i<num1;i++)cin>>shuzu1[i];
    for(i=0;i<num2;i++)cin>>shuzu2[i];
    paixu(shuzu1,num1);//???????1??
    paixu(shuzu2,num2);//???????2??
    hebing(shuzu1,num1,shuzu2,num2);//????????1???2
    for(i=0;i<(num1+num2);i++)
    {
                              cout<<shuzu1[i];
                              if(i<(num1+num2-1))cout<<" ";
    }//????????
    cin.get();cin.get();cin.get();cin.get();cin.get();cin.get();
    return 0;

}