#include<stdio.h>
struct ranking
{
int math;
int infor;
int rank;
int num;
};
int main()
{
int i,j,n,cnt = 0, k;
struct ranking a[1000];
struct ranking tmp;
int p1, p2;
scanf("%d",&n);
for(i=0; i<n; i++)
{
scanf("%d %d",&a[i].math,&a[i].infor);
a[i].num = i+1;
}
for(i=0; i<n; i++)
{
for(j=0; j<n-1; j++)
{
if(a[j].math < a[j+1].math)
{
tmp = a[j];
a[j] = a[j+1];
a[j+1] =tmp;
}
}
}
for(i=0; i<n; i++)
{
p1 = i;
for(j=i+1;; j++)
{
if(a[i].math != a[j].math)
{
p2 = j-1;
break;
}
}
for(k=0; k<p2-p1; k++)
{
for(j=p1; j<p2; j++)
{
if(a[j].infor < a[j+1].infor)
{
tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
}
}
i = p2;
}
}
for(i=0; i<n; i++)
{
printf("%d %d %d\n",a[i].num,a[i].math,a[i].infor);
}
}