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(); } } }