#include <stdio.h>
typedef struct Table {
    int idx;
    int val;
} table;

int main() {
    int n, a, b, i = 0, j = 0, tmp;
    scanf("%d", &n);
    table tbl[n];
    //printf("sizeof(tbl)=%ld %ld %ld\n", sizeof(tbl), sizeof(table), sizeof(int));
    while (scanf("%d %d", &a, &b) != EOF) {
        tbl[i].idx = a;
        tbl[i].val = b;
        //printf("tbl[%d]=%d %d\n", i, tbl[i].idx, tbl[i].val);
        i++;
    }
    for (i = 0; i < n - 1; i++) {
        for (j = i + 1; j < n; j++) {
            if (tbl[i].idx == tbl[j].idx) {
                tbl[i].val += tbl[j].val;
                tbl[j].val = 0;
                //printf("i tbl[%d]=%d %d\n", i, tbl[i].idx, tbl[i].val);
                //printf("j tbl[%d]=%d %d\n", j, tbl[j].idx, tbl[j].val);
            }
        }
    }
    for (i = 0; i < n - 1; i++) {
        for (j = i + 1; j < n; j++) {
            if (tbl[i].idx > tbl[j].idx) {
                tmp = tbl[i].idx;
                tbl[i].idx = tbl[j].idx;
                tbl[j].idx = tmp;
                tmp = tbl[i].val;
                tbl[i].val = tbl[j].val;
                tbl[j].val = tmp;            
            }
        }
    }
for (i = 0; i < n; i++){
    //printf("tbl[%d]=%d %d\n", i, tbl[i].idx, tbl[i].val);
    if(tbl[i].val != 0)
        printf("%d %d\n", tbl[i].idx, tbl[i].val);
}
    return 0;
}