#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct
{
int *elem;
}sqlist;
void listcreat(sqlist *l,int n,int m)
{
l->elem=(int *)malloc((n+m)*sizeof(int));
}
void listscanf(sqlist *l,int n,int m)
{
int i;
for(i=0;i<n;i++)
{
scanf("%d",&l->elem[i]);
}
for(i=n;i<n+m;i++)
{
scanf("%d",&l->elem[i]);
}
}
void listsqort(sqlist *l,int s,int r)
{
int i=s,j=r;
int key=l->elem[s];
if(s>=r)return;
while(i<j)
{
while(i<j&&l->elem[j]>=key)j--;
l->elem[i]=l->elem[j];
while(i<j&&l->elem[i]<=key)i++;
l->elem[j]=l->elem[i];
}
l->elem[i]=key;
listsqort(l,s,i-1);
listsqort(l,i+1,r);
}
void listprintf(sqlist *l,int n,int m)
{
int i;
for(i=0;i<n+m;i++)
{
if(i==0)
printf("%d",l->elem[i]);
else
printf(" %d",l->elem[i]);
}
}
int main()
{
int n,m;
sqlist l;
scanf("%d %d",&n,&m);
listcreat(&l,n,m);
listscanf(&l,n,m);
listsqort(&l,0,n+m-1);
listprintf(&l,n,m);
return 0;
}