#include<stdio.h>
int main(){
int n = 0;
int m = 0;
int arr1[1000] = {0};
int arr2[1000] = {0};
int arr3[3000] = {0};
//输入n和m
scanf("%d %d", &n, &m);
int i = 0;
int j = 0;
//输入两个升序序列
for (i = 0; i < n; i++) {
scanf("%d", &arr1[i]);
}
for (i = 0; i < m; i++) {
scanf("%d", &arr2[i]);
}
//合并有序序列并输出
i = 0;
j = 0;
int k = 0;
while (i < n && j < m) {
if (arr1[i] <arr2[j]) { ///拿arr1中的元素逐个与arr2中的第一个元素比较,小的输出在前
//printf("%d ", arr1[i]);
arr3[k] = arr1[i];
i++;
k++;
} else {
//printf("%d ", arr2[j]); //如果arr2中小的话输出arr2
arr3[k] = arr2[j];
j++;
k++;
}
}
//判断尚未遍历完的数组是否需要打印输出
if (i == n)
//for (; j < m; j++)
//printf("%d ", arr2[j]);
while(j<m){
arr3[k] = arr2[j];
j++;
k++;
}
else
//for (; i < n; i++)
// printf("%d ", arr1[i]);
while(i<n){
arr3[k] = arr1[i];
i++;
k++;
}
for(k = 0;k<m+n;k++){
printf("%d ",arr3[k]);
}
return 0;
}