#include<bits/stdc++.h>
using namespace std;
int n;
struct platform
{
int h,l,r,index;
int lfina,rfina;//物体最终位置
} plat[1005];
bool comp1(platform x,platform y)
{
return x.index<y.index;
}
bool comp2(platform x,platform y)
{
return x.h>y.h;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
cin>>plat[i].h>>plat[i].l>>plat[i].r;
plat[i].index=i;plat[i].lfina=0;plat[i].rfina=0;
}
sort(plat+1,plat+n+1,comp2);
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
{
if(plat[j].l<plat[i].l&&plat[j].r>plat[i].l)
{plat[i].lfina=plat[j].index;break;}
}
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
{
if(plat[j].r>plat[i].r&&plat[j].l<plat[i].r)
{plat[i].rfina=plat[j].index;break;}
}
sort(plat+1,plat+1+n,comp1);
for(int i=1;i<=n;i++)
cout<<plat[i].lfina<<" "<<plat[i].rfina<<endl;
return 0;
}