#include<stdlib.h>
void merge(int*a,int n,int*b,int m,int*result) 
{
    int i=0,j=0,k=0;
    while (i<n&&j<m) 
    {
        if (a[i]<b[j])
        
            result[k++]=a[i++];
        else
            result[k++]=b[j++];
    }
    while (i<n)
        result[k++]=a[i++];
    while (j < m)
        result[k++]=b[j++];
}
int main() 
{
    int n,m,i;
    scanf("%d",&n);
    if(n<=0)
    {
        printf("Invalid input\n");
        return 0;
    }
    int *a =(int *)malloc(n * sizeof(int));
    for (i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
    }
    scanf("%d", &m);
    if (m <= 0)
    {
        printf("Invalid input\n");
        free(a);
        return 0;
    }
    int *b = (int *)malloc(m * sizeof(int));
    for (i = 0; i < m; i++) 
    {
        scanf("%d", &b[i]);
    }
    int *result=(int *)malloc((n + m)*sizeof(int));
    merge(a, n, b, m, result);
    for (i=0;i<n+m;i++) 
    {
        printf("%d ",result[i]);
    }
    printf("\n");
    free(a);
    free(b);
    free(result);
    return 0;
}