class Program { static void Main() { int[] nm = Array.ConvertAll(Console.ReadLine().Split(' '), num => int.Parse(num.ToString())); var result = new Dictionary(); for (int i = 0; i < nm[0]; i++) { string[] str = Console.ReadLine().Split(' '); result.Add(str[0], int.Parse(str[1])); } for (int i = 0; i < nm[1]; i++) { string[] str = Console.ReadLine().Split(' '); if (result.ContainsKey(str[0])) { result[str[0]] = int.Parse(str[1]); } else { result.Add(str[0], int.Parse(str[1])); } } foreach (var i in result.Keys.OrderBy(x => x, StringComparer.Ordinal)) { Console.WriteLine(i + " " + result[i]); } } }