#include <iostream>
using namespace std;

typedef struct {
    int index;
    int value;
    bool flag;
} item;

int main() {
    int n;
    cin >> n;
    item a[n];
    for (int i = 0; i < n; i++) {
        cin >> a[i].index >> a[i].value;
        a[i].flag = true;
    }
    for (int i = 0; i < n; i++) {
        for (int j = i + 1; j < n; j++) {
            if (a[i].index == a[j].index && a[j].flag) {
                a[i].value += a[j].value;
                a[j].flag = false;
            }
        }
    }
    int index;
    for (int i = 0; i < n; i++) {
        index=0;
        int min=11111112;
        bool ischange=false;
        for (int j = 0; j < n; j++) {
            if (min > a[j].index && a[j].flag) {
                min = a[j].index;
                index = j;
                ischange=true;
            }
        }
        if(!ischange)   break;
        cout << a[index].index << " " << a[index].value << endl;
        a[index].flag = false;
    }
    return 0;
}
// 64 位输出请用 printf("%lld")