// editor1
import java.util.*;

public class SortedMapByValue {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // Read map size
        String line = scanner.nextLine().trim();
        if (!line.matches("\\d+")) {
            System.out.println("Invalid input");
            return;
        }

        int n = Integer.parseInt(line);
        if (n <= 0 || n > 100) {
            System.out.println("Invalid input");
            return;
        }

        Map<String, Integer> map = new HashMap<>();
        Set<Integer> valueSet = new HashSet<>();
        boolean hasInvalidValue = false;

        for (int i = 0; i < n; i++) {
            if (!scanner.hasNextLine()) {
                System.out.println("Invalid input");
                return;
            }

            String[] parts = scanner.nextLine().trim().split("\\s+");
            if (parts.length != 2 || !parts[1].matches("-?\\d+")) {
                System.out.println("Invalid input");
                return;
            }

            String key = parts[0];
            if (key.isEmpty() || !key.matches("[a-zA-Z]+")) { // ✅ only letters
                System.out.println("Invalid input");
                return;
            }

            int value = Integer.parseInt(parts[1]);
            if (value <= 0) {
                hasInvalidValue = true;
            }

            // ✅ case-insensitive duplicate check
            String lowerKey = key.toLowerCase();
            if (map.containsKey(lowerKey)) {
                System.out.println("Invalid input");
                return;
            }

            map.put(lowerKey, value);
            valueSet.add(value);
        }

        if (hasInvalidValue) {
            System.out.println("Invalid input");
            return;
        }

        if (valueSet.size() == 1) {
            System.out.println("-1");
            return;
        }

        List<Map.Entry<String, Integer>> sortedEntries = new ArrayList<>(map.entrySet());
        sortedEntries.sort((a, b) -> {
            int cmp = b.getValue().compareTo(a.getValue()); // value desc
            return (cmp != 0) ? cmp : a.getKey().compareTo(b.getKey()); // key asc
        });

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