import java.util.*;
/**
* 【合并表记录】
*
* 描述:
* 数据表记录包含表索引index和数值value(int范围的正整数),请对表索引相同的记录进行合并,
* 即将相同索引的数值进行求和运算,输出按照index值升序进行输出。
*
*/
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
TreeMap<Integer, Integer> treeMap = new TreeMap<>();
int size = sc.nextInt();
for (int i = 0; i < size; i++) {
int key = sc.nextInt();
int value = sc.nextInt();
if (treeMap.containsKey(key)) {
treeMap.put(key, treeMap.get(key) + value);
} else {
treeMap.put(key, value);
}
}
Set<Map.Entry<Integer, Integer>> entrySet = treeMap.entrySet();
for (Map.Entry<Integer, Integer> entry : entrySet) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
}