/*#include <stdio.h>
typedef struct
{
char name[11];
int s1,s2,s3;
} wasd;
int main()
{
int i,n,j,max=0,m=1,cnt=1,e=1,s=1;
wasd a[101];
scanf("%d",&n);
for(i=1; i<=n; i++)
{
scanf("%s %d %d %d",a[i].name,&a[i].s1,&a[i].s2,&a[i].s3);
}
for(i=1; i<=n; i++)
{
if(a[i].s1>max)
{
max=a[i].s1;
m=i;
}
}
printf("%s",a[m].name);
// a[m].s2의 등수
// a[m].s3의 등수
for(i=1;i<=n;i++)
{
if(a[i].s2>a[m].s2)
{
cnt++;
}
}
s=cnt;
cnt=1;
for(i=1;i<=n;i++)
{
if(a[i].s3>a[m].s3)
{
cnt++;
}
}
e=cnt;
printf(" %d %d",s,e);
}
*/
#include<stdio.h>
typedef struct
{
int s;
int e;
int r;
}korea;
int main()
{
int i,n,p=1,max=00;
korea a[10001];
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d %d %d",&a[i].s,&a[i].e,&a[i].r);
for(i=1;i<=n;i++)
{
if(a[i].r>max)
{
p=i;
max=a[i].r;
}
}
a[p].r=0;
printf("%d %d\n",a[p].s,a[p].e);
p=1;
max=0;
//////////////////////////////1등구하기
for(i=1;i<=n;i++)
{
if(a[i].r>max)
{
p=i;
max=a[i].r;
}
}
a[p].r=0;
printf("%d %d\n",a[p].s,a[p].e);
p=1;
max=0;
///////////////////////////////2등구하기
}