#include<iostream>
#include<map>
using namespace std;
int main() {
    int n;
    cin>>n;    //输入键值对的个数
    map<int, int> m;    //使用map容器,自带键值对数据结构
    map<int, int>::iterator it;    //map类型的迭代器
    for(int i=0;i<n;i++) {
        int a,b;
        cin>>a>>b;        //每行输入一个键值对
        it = m.find(a);    //查找键a是否存在
        if(it != m.end()) {    //如果存在,对键相同的单元的值部分进行求和;
            m[a] = it->second + b;
        }else {        //如果不存在生成新的键值对
            m[a] = b;
        }
    }
    for(it=m.begin();it!=m.end();it++) {    //遍历打印
        cout<<it->first<<" "<<it->second<<endl;
    }
    return 0;
}