#include<stdio.h>
typedef struct
{
int index;
int value;
}DATA;
int main(void)
{
int n;
scanf("%d", &n);
DATA data[500];
DATA temp;
int i = 0;
for (i = 0; i < n; i++)//输入键值对
{
scanf("%d %d", &data[i].index, &data[i].value);
}
for (i = 0; i < n - 1; i++)//升序
{
for (int j = 0; j < n - 1 - i; j++)
{
if (data[j].index > data[j + 1].index)
{
temp = data[j];
data[j] = data[j + 1];
data[j + 1] = temp;
}
}
}
for (i = 0; i < n; i++)//去掉重复的index
{
for (int j = i + 1; j < n; j++)
{
if (data[i].index == data[j].index)
{
data[i].value += data[j].value;
for (int k = j; k < n-1; k++)
{
data[k] = data[k + 1];
}
n--;
j--;//data[j]已经被原来的data[j+1]替换掉了,所以j--;
}
}
}
for (i = 0; i < n; i++)
{
printf("%d %d\n", data[i].index, data[i].value);
}
return 0;
}