/* 用哈希的方法会导致用内存超过要求,所以只能先存再排序,但是存的时候就可以做合并操作,减少循环次数 */
#include <stdio.h>
#define LEN 501
typedef struct data_s{
int idx;
int val;
}data_t;
int main() {
int n;
data_t data[LEN] = {-1};
data_t t;
int a1,a2;
scanf("%d", &n);
int i,j;
int find = 0;
for (i = 0; i < n; i++) {
find = 0;
data[i].idx = -1;
scanf("%d %d", &a1, &a2);
for (j = 0; j < i; j++) {
if (data[j].idx == a1) {
data[j].val += a2;
find = 1;
}
}
if (find == 0) {
data[i].idx = a1;
data[i].val = a2;
}
}
for (i = 0; i < n; i++) {
for (j = i+1; j < n; j++) {
if (data[i].idx > data[j].idx) {
t = data[i];
data[i] = data[j];
data[j] = t;
}
}
}
for (int i = 0; i < n; i++) {
if (data[i].val > 0) {
printf("%d %d \r\n", data[i].idx, data[i].val);
}
}
return 0;
}