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