#include<stdio.h>
typedef struct Londe
{
int data;
struct Londe *next;
}Londe,*linklist;
void InitList(linklist&L)
{
L=new Londe;
L->next=NULL;
}
void creatList(linklist&L,int a)
{
Londe *m,*n;
InitList(L);
m=L;
int b;
for(int i=1;i<=a;i++)
{
scanf("%d",&b);
n=new Londe;
n->data=b;
n->next=NULL;
m->next=n;
m=n ;
}
m->next=NULL;
}
void AA(linklist L,linklist H,linklist&V)
{
Londe *p1,*p2,*p3;
p1=L->next;
p2=H->next;
V=L;
p3=V;
while(p1&&p2)
{
if(p1->data<=p2->data)
{
p3->next=p1;
p3=p1;
p1=p1->next;
}
else
{
p3->next=p2;
p3=p2;
p2=p2->next;
}
}
if(p1)
p3->next=p1;
else
p3->next=p2;
}
void printM(linklist L)
{
linklist p=L->next;
while(p)
{
printf("%d ",p->data);
p=p->next;
}
}
int main()
{
linklist L,H,V;
int m,n;
scanf("%d %d",&m,&n);
creatList(L,m);
creatList(H,n);
AA(L,H,V);
printM(V);
return 0;
}