#include <iostream>
#include <stdlib.h>
using namespace std;
struct rectangle
{
int index;
int len;
int wid;
};
int main()
{
int n;
void sort(rectangle *p,int k);
void print(rectangle *p,int k);
cin>>n;
while(n--)
{
int m,i,max;
cin>>m;
rectangle rect[1005];
for(i=0;i<m;i++)
{
cin>>rect[i].index;
cin>>rect[i].len;
cin>>rect[i].wid;
if(rect[i].len<rect[i].wid)
{
max=rect[i].len;rect[i].len=rect[i].wid;rect[i].wid=max;
}
}
sort(rect,m);
print(rect,m);
}
return 0;
}
void sort(rectangle *p,int k)
{
int i,j;
rectangle *q=new rectangle;
for(i=0;i<k-1;i++)
for(j=i+1;j<k;j++)
if((*(p+i)).index>(*(p+j)).index)
{
*q=*(p+i);*(p+i)=*(p+j);*(p+j)=*q;
}
else if((*(p+i)).index==(*(p+j)).index)
{
if((*(p+i)).len>(*(p+j)).len){*q=*(p+i);*(p+i)=*(p+j);*(p+j)=*q;}
else if((*(p+i)).len==(*(p+j)).len)
{
if((*(p+i)).wid>(*(p+j)).wid)
{
*q=*(p+i);
*(p+i)=*(p+j);
*(p+j)=*q;
}
else if((*(p+i)).wid==(*(p+j)).wid)
{
(*(p+j)).index=0;
(*(p+j)).len=0;
(*(p+j)).wid=0;
}
}
}
}
void print(rectangle *p,int k)
{
int i;
for(i=0;i<k;i++)
if((*(p+i)).index)
{
cout<<(p+i)->index<<" "<<(p+i)->len<<" "<<(p+i)->wid<<endl;
}
}