#include <stdio.h>
int main()
{
int arr1[1000] = { 0 };
int arr2[1000] = { 0 };
int arr[2000] = { 0 };
int m = 0;
int n = 0;
int set = 0;
scanf("%d %d",&m,&n);
for (int a = 0; a < m; a++)
{
scanf("%d",&arr1[a]);
}
for (int b = 0; b < n; b++)
{
scanf("%d",&arr2[b]);
}
int sum = m + n;
for (int i = 0; i < sum; i++)
{
if (i < m)
{
arr[i] = arr1[i];
}
else
{
arr[i] = arr2[i - m];
}
}
//冒泡排序
for (int i = 0; i < sum-1; i++)//循环每跑一趟就会排出一个较大值(顺序)一共需要跑(sum-1)次 一共要跑的次数
{
for (int j = 0; j < sum - 1 - i; j++)//每排出一个较大值需要被排的数目就会减一 每跑一次需要遍历的次数
{
if (arr[j] >= arr[j+1])
{
set = arr[j];
arr[j] = arr[j+1];
arr[j+1]=set;
}
}
}
for (int x = 0; x < sum; x++)
{
printf("%d ", arr[x]);
}
return 0;
}