#include<iostream>
#include<cmath>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
struct Point{int x, y, num;}st;
bool cmp_y(const Point &p1,const Point &p2){
return p1.y<p2.y;
}
int x_mult(Point op, Point sp, Point ep){
return (sp.x-op.x)*(ep.y-op.y)-(sp.y-op.y)*(ep.x-op.x);
}
int dist(Point p1, Point p2){
return (p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y);
}
bool cmp_angle(const Point &p1, const Point &p2){
int t=x_mult(st, p1, p2);
if(t>0)return true;
if(t<0)return false;
if(dist(p1,st)<dist(p2,st))
return true;
return false;
}
int main(){
int T, i, n;
Point p[55];
scanf("%d", &T);
while(T--){
scanf("%d", &n);
for(i=0; i<n; i++)
scanf("%d %d %d", &p[i].num, &p[i].x, &p[i].y);
sort(p,p+n,cmp_y);
st=p[0];
printf("%d %d", n, p[0].num);
for(i=1; i<n; i++){
sort(p+i, p+n, cmp_angle);
st=p[i];
printf(" %d", p[i].num);
}
printf("/n");
}
return 0;
}