#include <stdio.h>
int main()
{
  int m, n, i, j, k;
  int arr1[1000] = {0};
  int arr2[1000] = {0};
  int arr3[1000] = {0};    //用新数组来记录合并后的序列,初值为0
  scanf("%d %d\n", &m, &n);
  for(i=0; i<m; i++)
    scanf("%d ", &arr1[i]);  //输入第一个有序序列
  for(i=0; i<n; i++)
    scanf("%d ", &arr2[i]);    //输入第二个有序序列
  i = 0, j = 0;   //一定一定要记得重置为0
  while(i<m && j<n)
  {   //两个数组依次出一个数比较,较小的就放到新数组中,
    if(arr1[i] <= arr2[j])
       arr3[k++] = arr1[i++];  //新数组与较小数数组下标均后移一位
    else 
       arr3[k++] = arr2[j++];
  }
  while(i<m)   //第一个数组还有没比较完的数时
         arr3[k++] = arr1[i++];  //直接全部复制到新数组中去
  while(j<n)
         arr3[k++] = arr2[j++];   //同理,若有没比较完的,直接复制过去
  for(i=0; i<m+n; i++)
        printf("%d ", arr3[i]);   //打印新数组元素
  return 0;
}