#include <iostream>
#include <algorithm>
using namespace std;
int D,N;
int pktx[45000] , pkty[45000];
int main()
{
ios::sync_with_stdio(0);
cin >> D;
//D=1;
while (D--)
{
cin >> N;
int wart[N+1];
for (int i=1 ; i<=N ; i++)
{
cin >> pktx[i] >> pkty[i];
wart[i]=1;
}
if (N==3) cout << "1 2 3" << endl;
else
{
int odp[3], a=N/3, mwxp = -1000000000 , mwxm = 1000000000, mwyp = -1000000000, mwym = 1000000000, lp[4];;
while (a--)
{
for (int i=1 ; i<=N ; i++) //szukanie limitow w trojkacie
{
if (wart[i]==1)
{
if (pktx[i]>=mwxp) mwxp=pktx[i], lp[0]=i;
if (pktx[i]<=mwxm) mwxm=pktx[i], lp[1]=i;
if (pkty[i]>=mwyp) mwyp=pkty[i], lp[2]=i;
if (pkty[i]<=mwym) mwym=pkty[i], lp[3]=i;
}
}
mwxp = -1000000000 , mwxm = 1000000000, mwyp = -1000000000, mwym = 1000000000;
wart[lp[0]]=0;
wart[lp[1]]=0;
wart[lp[2]]=0;
wart[lp[3]]=0;
//sortowanie odpowiedzi:
sort(lp, lp+4);
int m=0;
for (int l=0 ; l<4 ; l++)
{
if (lp[l] != lp[l-1]) odp[m]=lp[l], m++;
}
cout << odp[0] << " " << odp[1] << " " << odp[2] << endl;
}
}
cout << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBELE47CmludCBwa3R4WzQ1MDAwXSAsIHBrdHlbNDUwMDBdOwoKaW50IG1haW4oKQp7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbiA+PiBEOwogICAgLy9EPTE7CiAgICB3aGlsZSAoRC0tKQogICAgewogICAgICAgICAgICBjaW4gPj4gTjsKICAgICAgICAgICAgaW50IHdhcnRbTisxXTsKICAgICAgICAgICAgZm9yIChpbnQgaT0xIDsgaTw9TiA7IGkrKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY2luID4+IHBrdHhbaV0gPj4gcGt0eVtpXTsKICAgICAgICAgICAgICAgIHdhcnRbaV09MTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoTj09MykgY291dCA8PCAiMSAyIDMiIDw8IGVuZGw7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaW50IG9kcFszXSwgYT1OLzMsIG13eHAgPSAtMTAwMDAwMDAwMCAsIG13eG0gPSAxMDAwMDAwMDAwLCBtd3lwID0gLTEwMDAwMDAwMDAsIG13eW0gPSAxMDAwMDAwMDAwLCBscFs0XTs7CiAgICAgICAgICAgICAgICB3aGlsZSAoYS0tKQogICAgICAgICAgICAgICAgewoKICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpPTEgOyBpPD1OIDsgaSsrKSAvL3N6dWthbmllIGxpbWl0b3cgdyB0cm9qa2FjaWUKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3YXJ0W2ldPT0xKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGt0eFtpXT49bXd4cCkgbXd4cD1wa3R4W2ldLCBscFswXT1pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBrdHhbaV08PW13eG0pIG13eG09cGt0eFtpXSwgbHBbMV09aTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwa3R5W2ldPj1td3lwKSBtd3lwPXBrdHlbaV0sIGxwWzJdPWk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGt0eVtpXTw9bXd5bSkgbXd5bT1wa3R5W2ldLCBscFszXT1pOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIG13eHAgPSAtMTAwMDAwMDAwMCAsIG13eG0gPSAxMDAwMDAwMDAwLCBtd3lwID0gLTEwMDAwMDAwMDAsIG13eW0gPSAxMDAwMDAwMDAwOwogICAgICAgICAgICAgICAgICAgIHdhcnRbbHBbMF1dPTA7CiAgICAgICAgICAgICAgICAgICAgd2FydFtscFsxXV09MDsKICAgICAgICAgICAgICAgICAgICB3YXJ0W2xwWzJdXT0wOwogICAgICAgICAgICAgICAgICAgIHdhcnRbbHBbM11dPTA7CiAgICAgICAgICAgICAgICAgICAgLy9zb3J0b3dhbmllIG9kcG93aWVkemk6CiAgICAgICAgICAgICAgICAgICAgc29ydChscCwgbHArNCk7CiAgICAgICAgICAgICAgICAgICAgaW50IG09MDsKICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBsPTAgOyBsPDQgOyBsKyspCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAobHBbbF0gIT0gbHBbbC0xXSkgb2RwW21dPWxwW2xdLCBtKys7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGNvdXQgPDwgb2RwWzBdIDw8ICIgIiA8PCBvZHBbMV0gPDwgIiAiIDw8IG9kcFsyXSA8PCBlbmRsOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvdXQgPDwgZW5kbDsKICAgICAgICB9CiAgICByZXR1cm4gMDsKfQo=