#include <stdio.h>
#include <stdlib.h>

void mergeAndSort(int* arr1, int n, int* arr2, int m) {
    int total = n + m;
    int merged; // max 10+10 elements (per constraints)
    for (int i = 0; i < n; i++)
        merged[i] = arr1[i];
    for (int i = 0; i < m; i++)
        merged[n + i] = arr2[i];

    // Simple Bubble Sort (since n, m <= 10)
    for (int i = 0; i < total - 1; i++) {
        for (int j = 0; j < total - i - 1; j++) {
            if (merged[j] > merged[j+1]) {
                int temp = merged[j];
                merged[j] = merged[j+1];
                merged[j+1] = temp;
            }
        }
    }

    for (int i = 0; i < total; i++)
        printf("%d ", merged[i]);
    printf("\n");
}

int main() {
    int n, m, arr1, arr2;
    if (scanf("%d", &n) != 1 || n <= 0) {
        printf("Invalid input\n");
        return 0;
    }
    for (int i = 0; i < n; i++) {
        if (scanf("%d", &arr1[i]) != 1) {
            printf("Invalid input\n");
            return 0;
        }
    }
    if (scanf("%d", &m) != 1 || m <= 0) {
        printf("Invalid input\n");
        return 0;
    }
    for (int i = 0; i < m; i++) {
        if (scanf("%d", &arr2[i]) != 1) {
            printf("Invalid input\n");
            return 0;
        }
    }

    mergeAndSort(arr1, n, arr2, m);
    return 0;
}