#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<unordered_map>
using namespace std;
int main()
{
    int n;//输入键值对的个数;
    cin >> n;
    vector<int> arr;//定义一个容器。
    unordered_map<int, int> map1;//无序映射表,存储key-value且不允许重复

    while(n-- > 0){//依次输入n对键值
        int key,value;
        cin >> key >> value;
        if(map1.count(key) == 0)//判断映射表中当前key对应的value有无;
        {
            map1[key] = value;//将当前value放入对应的key中。
            arr.push_back(key);//并且将这个key放到一个arr数组中;
        }else{
            map1[key] += value;//如果已经有了对应的value,后面同样的key 的value,直接相加;
        }
    }
        sort(arr.begin(),arr.end());//将key进行排序
        for(int i = 0;i < arr.size();i++){
            cout<<arr[i]<<" "<<map1[arr[i]] << endl;//先输出key,再输出value;
            }
    return 0;
}