import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.TreeMap;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        try (BufferedReader br = 
                new BufferedReader(new InputStreamReader(System.in))) {
            String str = null;

            while ((str = br.readLine()) != null) {
                int num = Integer.parseInt(str);
                TreeMap<Integer, Integer> tm = new TreeMap<>();
                for (int i = 0; i < num; i++) {
                    str = br.readLine();
                    String[] strArr = str.split(" ");
                    Integer key = Integer.valueOf(strArr[0]);
                    Integer value = Integer.valueOf(strArr[1]);
                    if(!tm.containsKey(key)) {
                        tm.put(key,value);
                    } else {   
                        tm.put(key,tm.get(key) + value);
                    }
                }
                Set<Integer> keySet = tm.keySet();
                for (Integer i : keySet) {
                    System.out.println(i + " " + tm.get(i));
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}