/*
#include <stdio.h>
int a[10001];
int n, i, j, temp;
int main()
{
int count=0;
int k=0;
scanf("%d", &n);
for (i=1; i<=n; i++)
scanf("%d", &a[i]);
for(i=1; i<n; i++)
{
for(int j=1; j<n; j++)
{
if (a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
k=0;
for(int m=n-1;m>1;m--)
{
if(a[m]-a[m-1]>=0)
{
k++;
}
}
count++;
if(k==n-2)
{
break;
}
}
printf("%d",count);
return 0;
}
/*/
/*
#include<stdio.h>
int size, i=0;
int partition(int a[],int begin,int end)
{
int pivot,temp,L,R,t;
L=begin;
R=end;
pivot=(int)((begin+end)/2.0);
printf("\n [%d´Ü°è : pivot=%d] \n",++i,a[pivot] );
while(L<R)
{
while((a[L]<a[pivot]) && (L<R)) L++;
while((a[R]>=a[pivot]) && (L<R)) R--;
if(L<R)
{
temp=a[L];
a[L]=a[R];
a[R]=temp;
if(L==pivot)
pivot=R;
}
}
temp=a[pivot];
a[pivot]=a[R];
a[R]=temp;
for(t=0;t<size;t++)
{
printf(" %d",a[t]);
}
printf("\n");
return R;
}
void quicksort(int a[],int begin,int end)
{
int p;
if(begin<end)
{
p=partition(a,begin,end);
quicksort(a,begin,p-1);
quicksort(a,p+1,end);
}
}
void main()
{
int list[8]={69,10,30,2,16,8,31,22};
size=8;
quicksort(list,0,size-1);
}
*/
/*
#include <stdio.h>
int a[10001];
int n, i, j, temp;
int main()
{
int count=0;
int k=0;
scanf("%d", &n);
for (i=1; i<=n; i++)
scanf("%d", &a[i]);
for(i=1; i<n; i++)
{
for(int j=1; j<n; j++)
{
if (a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
k=0;
for(int m=n-1;m>1;m--)
{
if(a[m]-a[m-1]>=0)
{
k++;
}
}
count++;
if(k==n-2)
{
break;
}
}
printf("%d",count);
return 0;
}
*/
//#include <stdio.h>
//
//int a[4500000];
//
//int main()
//{
// int n;
// int temp;
// scanf("%d", &n);
// for (int i=0; i<n; i++)
// scanf("%d", &a[i]);
//
// for(int i=0; i<n; i++)
// {
// for(int j=0; j<n; j++)
// {
// if (a[j] > a[j+1])
// {
// temp = a[j];
// a[j] = a[j+1];
// a[j+1] = temp;
// }
// }
// }
// for(int i=1;i<=n;i++)
// {
// printf("%d ",a[i]);
// }
// return 0;
//}
/*
#include<stdio.h>
int main() {
int map[100001] = {0};
int n, i, j, k;
scanf("%d", &n);
for(i=0; i<n; i++) {
scanf("%d", &k);
map[k]++;
}
for(i=0; i<=100000; i++) {
for(j=0; j<map[i]; j++) {
printf("%d ", i);
}
}
}
*/
/*
#include<stdio.h>
int size, i=0;
int list[50001];
int arr[50001];
int a[50001];
int b[50001];
int h[50001];
int partition(int a[],int begin,int end)
{
int pivot,temp,L,R,t;
L=begin;
R=end;
pivot=(int)((begin+end)/2.0);
while(L<R)
{
while((a[L]<a[pivot]) && (L<R))
L++;
while((a[R]>=a[pivot]) && (L<R))
R--;
if(L<R)
{
temp=a[L];
a[L]=a[R];
a[R]=temp;
if(L==pivot)
pivot=R;
}
}
temp=a[pivot];
a[pivot]=a[R];
a[R]=temp;
return R;
}
void quicksort(int a[],int begin,int end)
{
int p;
if(begin<end)
{
p=partition(a,begin,end);
quicksort(a,begin,p-1);
quicksort(a,p+1,end);
}
}
void main()
{
int q=0;
scanf("%d",&size);
for(int m=0; m<size; m++)
{
scanf("%d",&list[m]);
h[m]=list[m];
}
quicksort(list,0,size-1);
for(int i=0; i<size; i++)
{
b[i]=q++;
}
for(int i=0; i<size; i++)
{
for(int j=0; j<size; j++)
{
if(h[i]==list[j])
{
b[i]=j;
}
}
}
for(int i=0; i<size; i++)
{
printf("%d ",b[i]);
}
return 0;
}
*/
/*
#include<stdio.h>
int size, i=0;
int partition(int a[],int begin,int end)
{
int pivot,temp,L,R,t;
L=begin;
R=end;
pivot=(int)((begin+end)/2.0);
while(L<R)
{
while((a[L]<a[pivot]) && (L<R)) L++;
while((a[R]>=a[pivot]) && (L<R)) R--;
if(L<R)
{
temp=a[L];
a[L]=a[R];
a[R]=temp;
if(L==pivot)
pivot=R;
}
}
temp=a[pivot];
a[pivot]=a[R];
a[R]=temp;
return R;
}
void quicksort(int a[],int begin,int end)
{
int p;
if(begin<end)
{
p=partition(a,begin,end);
quicksort(a,begin,p-1);
quicksort(a,p+1,end);
}
}
void main()
{
int n;
scanf("%d",&n);
int list[100001];
for(int i=0;i<n;i++)
{
scanf("%d",&list[i]);
}
size=n;
quicksort(list,0,size-1);
for(int i=0;i<size;i++)
{
printf("%d \n",list[i]);
}
return 0;
}
*/
#include<stdio.h>
struct node {
int a, b;
};
struct horse
{
int c,d;
};
int main() {
int n;
int k=0;
int p=1;
int min=150;
int rid=150;
scanf("%d",&n);
struct node map[1001];
struct horse nice;
for(int i=0;i<n;i++)
{
scanf("%d %d",&map[i].a,&map[i].b);
}
for(int i=0;i<n;i++)
{
min=150;
rid=150;
for(int j=i;j<n;j++)
{
if(min>map[j].a)
{
min=map[j].a;
k=map[j].b;
}
else if(min==map[j].a)
{
if(map[j].b<k)
{
min=map[j].a;
rid=map[j].b;
}
}
}
if(map[i].a>min)
{
map[i].a=min;
map[i].b=rid;
}
printf("%d %d %d \n",p++,map[i].a,map[i].b);
}
return 0;
}