#include<stdlib.h>
int cmp(void* elem1,void* elem2)
{
    return *(int*)elem1 - *(int*)elem2;
}
int main()
{
    int n = 0;
    scanf("%d",&n);
    int arr[n][2];
    int i = 0,j = 0;
    for(i=0;i<n;i++)
    {
        for(j=0;j<2;j++)
        {
            scanf("%d",&arr[i][j]);
        }
    }
    qsort(arr,n,8,cmp);//排序
    int src = 0;
     for(i=0;i<n;i++)
     {
         j = i+1;//找下一列
         while(arr[i][0]==arr[j][0]&&j<n)
         {
             arr[i][1]+=arr[j][1];
             memmove(arr+j,arr+j+1,(n-j-1)*8);//把加进去的数列覆盖掉
             n--;
         }
     }
    for(i=0;i<n;i++)
    {
        for(j=0;j<2;j++)
        {
            printf("%d ",arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}