//放入map, 对map的key进行判断,key有重复的就重新put进map更新对应的value的值、
//重点是数据结构的选择,
//这里没用hashmap, 而是用的TreeMap ,因为hashmap是无序的,TreeMap是有序的,
//当key的数量非常多的时候,TreeMap可以保证有序。
import java.util.*;
public class Main{
    public static void  main(String[] args){
        Scanner sc = new Scanner(System.in);
        TreeMap<Integer,Integer> outMap = new TreeMap<Integer,Integer>();
        //对输入数据用空格切割
        while(sc.hasNext()){
           String inStr = sc.nextLine();
           String[] arr  = inStr.split(" ");
            if(arr.length>1){
               int key = Integer.parseInt(arr[0]);
               int value = Integer.parseInt(arr[1]);
                if(!outMap.containsKey(key)){
                    outMap.put(key,value);
                }else{
                    outMap.put(key,outMap.get(key) + value);
                }
            }
        }
               //遍历map输出
//                for(String key :outMap.keySet()){
//                    System.out.println(key +" " +outMap.get(key));
//                }
            for (Map.Entry<Integer, Integer> entry : outMap.entrySet()) {
                    System.out.println(entry.getKey()+" "+entry.getValue());
            }
    }
}