#include <stdio.h>  
#include <stdlib.h>
struct student  
{  
    int num;  
    int score;  
};
int main()  
{  
    struct student students[200];  
    int n,i,j;  
    struct student t;
	while(scanf("%d",&n)!=EOF)  
    {
		for(i=0;i<n;i++)  
        {  
            scanf("%d %d",&students[i].num,&students[i].score);  
        }  
        for(i=0;i<n-1;i++)  
        {  
            for(j=0;j<n-i-1;j++)  
            {  
                if(students[j].score>students[j + 1].score)  
                {  
                    t=students[j];  
                    students[j]=students[j+1];  
                    students[j+1]=t;  
                }
				else if(students[j].score==students[j+1].score)
				{  
                    if(students[j].num>students[j+1].num)  
                    {  
                        t=students[j];  
                        students[j]=students[j+1];  
                        students[j+1]=t;  
                    }  
                }  
            }  
        }
        for(i=0;i<n;i++)  
        {  
            printf("%d %d\n",students[i].num,students[i].score);  
        }  
    }  
      
    return 0;  
}  

/**************************************************************
	Problem: 2212
	User: admin
	Language: C
	Result: Accepted
	Time:14 ms
	Memory:1144 kb
****************************************************************/