#include <iostream>
#include <math.h>
using namespace std;
void sortowanie_babelkowe(int *tab,char *tabnazwa, int *tabx, int *taby, int n)
{
for (int i=1; i<n; i++)
{
for (int j=n-1; j>=1; j--)
{
if (tab[j]<tab[j-1])
{
int bufor,x,y;
char n;
bufor=tab[j-1];
n=tabnazwa[j-1];
x=tabx[j-1];
y=taby[j-1];
tab[j-1]=tab[j];
tabnazwa[j-1]=tabnazwa[j];
tabx[j-1]=tabx[j];
taby[j-1]=taby[j];
tab[j]=bufor;
tabnazwa[j]=n;
tabx[j]=x;
taby[j]=y;
}
}
}
}
int main()
{
int ile_testow,ile_punktow;
cin >> ile_testow;
for(int i=0; i<ile_testow; i++)
{
cin >> ile_punktow;
int x[ile_punktow],y[ile_punktow],z[ile_punktow];
char nazwa[ile_punktow];
for(int i=0; i<ile_punktow; i++)
{
cin >> nazwa[i];
cin >> x[i];
cin >> y[i];
z[i]=sqrt(pow(x[i],2)+pow(y[i],2));
}
sortowanie_babelkowe(z,nazwa,x,y,ile_punktow);
for(int i=0; i<ile_punktow; i++)
{
cout <<nazwa[i]<< " " <<x[i]<< " "<<y[i]<< endl;
}
cout <<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWF0aC5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgc29ydG93YW5pZV9iYWJlbGtvd2UoaW50ICp0YWIsY2hhciAqdGFibmF6d2EsIGludCAqdGFieCwgaW50ICp0YWJ5LCBpbnQgbikKewogICAgZm9yIChpbnQgaT0xOyBpPG47IGkrKykKICAgIHsKICAgICAgICBmb3IgKGludCBqPW4tMTsgaj49MTsgai0tKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKHRhYltqXTx0YWJbai0xXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaW50IGJ1Zm9yLHgseTsKICAgICAgICAgICAgICAgIGNoYXIgbjsKICAgICAgICAgICAgICAgIGJ1Zm9yPXRhYltqLTFdOwogICAgICAgICAgICAgICAgbj10YWJuYXp3YVtqLTFdOwogICAgICAgICAgICAgICAgeD10YWJ4W2otMV07CiAgICAgICAgICAgICAgICB5PXRhYnlbai0xXTsKCiAgICAgICAgICAgICAgICB0YWJbai0xXT10YWJbal07CiAgICAgICAgICAgICAgICB0YWJuYXp3YVtqLTFdPXRhYm5hendhW2pdOwogICAgICAgICAgICAgICAgdGFieFtqLTFdPXRhYnhbal07CiAgICAgICAgICAgICAgICB0YWJ5W2otMV09dGFieVtqXTsKCiAgICAgICAgICAgICAgICB0YWJbal09YnVmb3I7CiAgICAgICAgICAgICAgICB0YWJuYXp3YVtqXT1uOwogICAgICAgICAgICAgICAgdGFieFtqXT14OwogICAgICAgICAgICAgICAgdGFieVtqXT15OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgppbnQgbWFpbigpCnsKICAgIGludCBpbGVfdGVzdG93LGlsZV9wdW5rdG93OwogICAgY2luID4+IGlsZV90ZXN0b3c7CiAgICBmb3IoaW50IGk9MDsgaTxpbGVfdGVzdG93OyBpKyspCiAgICB7CiAgICAgICAgY2luID4+IGlsZV9wdW5rdG93OwogICAgICAgIGludCB4W2lsZV9wdW5rdG93XSx5W2lsZV9wdW5rdG93XSx6W2lsZV9wdW5rdG93XTsKICAgICAgICBjaGFyIG5hendhW2lsZV9wdW5rdG93XTsKCiAgICAgICAgZm9yKGludCBpPTA7IGk8aWxlX3B1bmt0b3c7IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIGNpbiA+PiBuYXp3YVtpXTsKICAgICAgICAgICAgY2luID4+IHhbaV07CiAgICAgICAgICAgIGNpbiA+PiB5W2ldOwogICAgICAgICAgICB6W2ldPXNxcnQocG93KHhbaV0sMikrcG93KHlbaV0sMikpOwogICAgICAgIH0KICAgICAgICBzb3J0b3dhbmllX2JhYmVsa293ZSh6LG5hendhLHgseSxpbGVfcHVua3Rvdyk7CgogICAgICAgIGZvcihpbnQgaT0wOyBpPGlsZV9wdW5rdG93OyBpKyspCiAgICAgICAgewogICAgICAgICAgICBjb3V0IDw8bmF6d2FbaV08PCAiICIgPDx4W2ldPDwgIiAiPDx5W2ldPDwgZW5kbDsKICAgICAgICB9CiAgICAgICAgY291dCA8PGVuZGw7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=