#include <stdio.h>

int main() {
    int n, m;
    scanf("%d %d", &n, &m);
    int a1[n];//读取第一个数组
    for (int i = 0; i < n; i++) {
        scanf("%d", &a1[i]);
    }
    int a2[m];//读取第二个数组
    for (int i = 0; i < m; i++) {
        scanf("%d", &a2[i]);
    }
    //比较并打印,tag就是下标,tag_a就是数组a1的下标
    for (int i = 0, tag_a1 = 0, tag_a2 = 0; i < m + n; i++) {
        if (a1[tag_a1] <= a2[tag_a2]) {
            printf("%d ", a1[tag_a1]);
            tag_a1++;
        } else {
            printf("%d ", a2[tag_a2]);
            tag_a2++;
        }
        if (tag_a1 == n )
            a1[tag_a1] = 30001;
        if (tag_a2 == m )
            a2[tag_a2] = 30001;
    }
    return 0;
}