#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;
}