import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Map.Entry;
import java.util.SortedMap;
import java.util.TreeMap;
//合并表记录
public class Ztry8 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan=new Scanner(System.in);
int num=scan.nextInt();
HashMap<Integer,Integer> h=new HashMap<Integer,Integer>();
for(int i=0;i<num;i++){
int n=scan.nextInt();
int m=scan.nextInt();
if(h.containsKey(n)) h.put(n, h.get(n)+m);
else h.put(n, m);
}
Object[] key_arr = h.keySet().toArray(); //第一种
Arrays.sort(key_arr);
for (Object key : key_arr) {
int kk=(int)key;
int vv=h.get(key);
System.out.println(kk+" "+vv);
}
Map<String,Integer> map = new HashMap<String,Integer>();
map.put("a", 2);
map.put("e", 9);
map.put("b", 5);
map.put("d", 3);
map.put("t", 7);
System.out.println("map before sort " + map + " ..");
//map按照key升序排序
Map<String,Integer> sortedMapByKey = new TreeMap<String,Integer>();
sortedMapByKey.putAll(map);
System.out.println("map after sort by key asc.." + sortedMapByKey);
//map按照key降序排序
sortedMapByKey = new TreeMap<String,Integer>(new Comparator<String>() {//第二种
public int compare(String obj1, String obj2) {
// 降序排序
return obj2.compareTo(obj1);
}
});
sortedMapByKey.putAll(map);
System.out.println("map after sort by key desc.." + sortedMapByKey);
}
}