import java.util.Scanner;
import java.util.TreeMap;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextLine()) {
            String countStr = scanner.nextLine();
            int count = Integer.parseInt(countStr);
            Stream.generate(scanner::nextLine).limit(count).map(Record::new)
                    .collect(Collectors.groupingBy(Record::getIndex, TreeMap::new, Collectors.summingInt(Record::getValue)))
                    .forEach((key, value) -> System.out.println(String.format("%s %s", key, value)));

        }
    }

    private static class Record {
        public Integer getIndex() {
            return index;
        }

        public Integer getValue() {
            return value;
        }

        private Integer index;
        private Integer value;

        Record(String recordStr) {
            String[] array = recordStr.split(" ");
            index = Integer.valueOf(array[0]);
            value = Integer.valueOf(array[1]);
        }
    }
}