#include<stdio.h>
#include<malloc.h>
typedef struct list{
int *pa;
int *pc;
int linght;
int Max=0;
int min=0;
}list;
void sum(list op){
int *pt = (int *)malloc(sizeof(int)*7);
int k=0,i=0,j=0;
while (i <op.Max&&j < op.min){
if (op.pa[i] < op.pc[j])
pt[k++] = op.pa[i++];
else
pt[k++] = op.pc[j++];
}
while (i < op.Max)
pt[k++] = op.pa[i++];
while (j <op.min)
pt[k++] = op.pc[j++];
for (int i = 0; i <k; i++)
printf("%d\n", pt[i]);
}
int main(){
int n, m;
list l;
scanf("%d", &n);
scanf("%d", &m);
l.pa = (int *)malloc(sizeof(int)*n);
for (int i = 0; i < n; i++)
{
scanf("%d", &l.pa[i]);
l.Max++;
}
l.pc = (int *)malloc(sizeof(int)*m);
for (int i = 0; i < m; i++)
{
scanf("%d", &l.pc[i]);
l.min++;
}
sum(l);
return 0;
}