using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
namespace OneCompiler
{
public class Program
{
public static void Main(string[] args)
{
int m = int.Parse(Console.ReadLine());
int[] arr1 = Array.ConvertAll(Console.ReadLine().Split(" "), new Converter<string,int>(StringToInteger));
int n = int.Parse(Console.ReadLine());
int[] arr2 = Array.ConvertAll(Console.ReadLine().Split(" "), new Converter<string,int>(StringToInteger));
int[] arr3 = Union(arr1, arr2);
for (int i = 0; i < arr3.Length; i++)
{
Console.Write(arr3[i] + " ");
}
}
private static int StringToInteger(string s)
{
return int.Parse(s);
}
private static int[] Union(int[] arr1, int[] arr2)
{
int m = arr1.Length;
int n = arr2.Length;
HashSet<int> union = new HashSet<int>();
int i = 0;
int j = 0;
while (i < m && j < n)
{
if (arr1[i] < arr2[j])
{
union.Add(arr1[i]);
i++;
}
else if(arr1[i] > arr2[j])
{
union.Add(arr2[j]);
j++;
}
else
{
union.Add(arr1[i]);
i++;
j++;
}
}
while (i < m)
{
union.Add(arr1[i]);
i++;
}
while (j < n)
{
union.Add(arr2[j]);
j++;
}
return union.ToArray();
}
}
}