import java.util.*;
public class MagicalLedgers {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int m = scanner.nextInt();
scanner.nextLine(); 
int n;
if (m <= 0) {
if (scanner.hasNextInt()) {
n = scanner.nextInt();
scanner.nextLine();
} else {
System.out.println("Invalid input");
return;
}
if (n <= 0) {
System.out.println("Invalid input");
}
} else {
Map<String, Integer> map1 = new LinkedHashMap<>();
for (int i = 0; i < m; i++) {
String[] parts = scanner.nextLine().trim().split("\s+");
if (parts.length == 2) {
map1.put(parts[0], Integer.parseInt(parts[1]));
}
}

n = scanner.nextInt();
scanner.nextLine(); 
if (n <= 0) {
System.out.println("Invalid input");
return;
}


Map<String, Integer> map2 = new LinkedHashMap<>();
for (int i = 0; i < n; i++) {
String[] parts = scanner.nextLine().trim().split("\s+");
if (parts.length == 2) {
map2.put(parts[0], Integer.parseInt(parts[1]));
}
}

if (map1.equals(map2)) {
System.out.println("-1");
return;
}
Map<String, Integer> merged = new TreeMap<>(map1);
merged.putAll(map2);

                                                                                                                                                                                                    for (Map.Entry<String, Integer> entry : merged.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}

return;
}
        }
}