import java.util.*;
class Main {
static class Node {
int data;
Node next;
Node(int data) {
this.data = data;
}
}
static Node buildlist(int[] vals) {
Node head = null, tail = null;
for (int val : vals) {
Node newNode = new Node(val);
if (head == null) {
head = newNode;
tail = newNode;
} else {
tail.next = newNode;
tail = newNode;
}
}
return head;
}
static Node sort(Node head, Node head1) {
Node curr = head;
Node curr1 = head1;
Node dummy = new Node(0);
Node dummycurr = dummy;
while (curr != null && curr1 != null) {
if (curr.data <= curr1.data) {
dummycurr.next = new Node(curr.data);
dummycurr = dummycurr.next;
curr = curr.next;
} else {
dummycurr.next = new Node(curr1.data);
dummycurr = dummycurr.next;
curr1 = curr1.next;
}
}
// Remaining nodes of first list
while (curr != null) {
dummycurr.next = new Node(curr.data);
dummycurr = dummycurr.next;
curr = curr.next;
}
// Remaining nodes of second list
while (curr1 != null) {
dummycurr.next = new Node(curr1.data);
dummycurr = dummycurr.next;
curr1 = curr1.next;
}
return dummy.next;
}
public static void main
(String[] args
) {
Scanner sc
= new Scanner
(System.
in);
int n = sc.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
int m = sc.nextInt();
int[] arr1 = new int[m];
for (int i = 0; i < m; i++) {
arr1[i] = sc.nextInt();
}
Node head = buildlist(arr);
Node head1 = buildlist(arr1);
Node dum = sort(head, head1);
StringBuilder sb = new StringBuilder();
Node dumcurr = dum;
while (dumcurr != null) {
sb.append(dumcurr.data);
if (dumcurr.next != null)
sb.append(" ");
dumcurr = dumcurr.next;
}
}
}