
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");
                  return;
             }
        } 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;
        }
    }
}

