#include <stdio.h>

int main(){

	int m, n;
	int La[100], Lb[100], Lc[200];	// 定义存储空间,Lc需要La和Lb总和的空间
	int i, j, k;
	while(scanf("%d", &m) != EOF){

		// 读入 La
		for(i=0;i<m;i++){
			scanf("%d", &La[i]);
		}

		// 读入 Lb
		scanf("%d", &n);
		for(i=0;i<n;i++){
			scanf("%d", &Lb[i]);
		}

		// 归并
		i = j = k = 0;
		while(i<m && j<n){
			if(La[i] < Lb[j]){
				Lc[k] = La[i];
				i++;
			}else{
				Lc[k] = Lb[j];
				j++;
			}
			k++;
		}

		// 处理没有在归并中处理的数据
		while(i < m){
			Lc[k++] = La[i++];
		}
		while(j < n){
			Lc[k++] = Lb[j++];
		}

		// 输出结果
		for(k=0;k<m+n;k++){
			if(k){
				putchar(' ');
			}
			printf("%d", Lc[k]);
		}

		putchar('\n');
	}

	return 0;
}

/**************************************************************
	Problem: 2136
	User: admin
	Language: C++
	Result: Accepted
	Time:13 ms
	Memory:1144 kb
****************************************************************/