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