/*
#include <stdio.h>//4751 : 아시아 정보올림피아드
typedef struct
{
int c,n,s;
}f;
int main()
{
int i,j,k,m=0;
f a[101]={},b[3]={};
scanf("%d",&k);
for(i=0; i<k; i++){
scanf("%d %d %d",&a[i].c,&a[i].n,&a[i].s);
}
for(i=0; i<3; i++){
if(i==2 && b[0].c==b[1].c){
for(int j=0; j<k; j++){
if(a[j].c == b[0].c){
a[j].s=-1;
}
}
}
for(j=0; j<k; j++){
if(a[m].s < a[j+1].s){
m=j+1;
}
}
b[i].c = a[m].c;
b[i].n = a[m].n;
a[m].s = -1;
m=0;
}
for(i=0; i<3; i++){
printf("%d %d\n",b[i].c,b[i].n);
}
return 0;
}
*/
/*
#include <stdio.h>//1805 : 입체기동장치 생산공장
typedef struct
{
int a,b;
}equipment;
int main()
{
int i,j,n,temp;
equipment x[101]={};
scanf("%d",&n);
for(i=0; i<n; i++){
scanf("%d %d",&x[i].a,&x[i].b);
}
for(i=1; i<n; i++){
for(j=0; j<n-i; j++){
if(x[j].a > x[j+1].a){
temp = x[j].a;
x[j].a = x[j+1].a;
x[j+1].a = temp;
temp = x[j].b;
x[j].b = x[j+1].b;
x[j+1].b = temp;
}
}
}
for(i=0; i<n; i++){
printf("%d %d\n",x[i].a,x[i].b);
}
return 0;
}
*/
#include <stdio.h>//3017 : 정렬 기준
typedef struct
{
int n,m,i;
}score;
score a[1001]={};
int temp;
void copy(int j)
{
temp = a[j].m;
a[j].m = a[j+1].m;
a[j+1].m = temp;
}
int main()
{
int i,j,k,r=0;
scanf("%d",&k);
for(i=0; i<k; i++){
scanf("%d %d",&a[i].m,&a[i].i);
}
for(i=1; i<k; i++){
for(j=0; j<k-i; j++){
if(a[j].m < a[j+1].m){
copy(j);
}
}
}
for(i=0; i<k; i++){
printf("%d %d\n",a[i].m,a[i].i);
}
return 0;
}