#include <stdio.h>
int main() {
int n,m,a,b;
scanf("%d %d",&n,&m);
int arr1[n],arr2[m];
for(int i = 0;i<n;i++){
scanf("%d ",&a);
arr1[i]=a;
}
for(int j = 0;j<m;j++){
scanf("%d ",&b);
arr2[j]=b;
} //输入数组;
int arr[n+m];
int i=0,j=0,count=0;
while(1){
if(arr1[i]<arr2[j]){
arr[count]=arr1[i];
count++;
i++;
}
else{
arr[count]=arr2[j];
j++;
count++;
}
//判断某一数组是否读取完整
if(i==n){
for(int x=j;x<m;x++){
arr[count]=arr2[x];
count++;
}
break;
}
else if(j==m){
for(int y=i;y<n;y++){
arr[count]=arr1[y];
count++;
}
break;
}
}
for(int k=0;k<n+m;k++){
printf("%d ",arr[k]);
}
return 0;
}