#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
//英语 看博友分析 抄博友程序 判断点是否在三角形的内部或边上 背
struct nod{
string s;
double x;
double y;
}da[100];
double area(nod a, nod b, nod c)
{
//cout<<a.x<<" "<<a.y<<" "<<b.x<<" "<<b.y<<" "<<c.x<<" "<<c.y<<endl;
double t=(b.x-c.x)*(a.y-c.y)-(a.x-c.x)*(b.y-c.y);//抄博友程序 背
//cout<<fabs(t/2.0)<<endl;
return fabs(t/2.0);//抄博友程序 背
}
int main()
{
while(1)
{
int n;
cin>>n;
if(n==0)
{
break;
}
for(int i=0;i<n;i++)
{
cin>>da[i].s>>da[i].x>>da[i].y;
}
double mx=-1;
string jg="hi";
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
for(int k=j+1;k<n;k++)
{
//cout<<da[i].s<<" "<<da[j].s<<" "<<da[k].s<<endl;
double s=area(da[i],da[j],da[k]);
int flag=0;
if(s!=0)
{
for(int p=0;p<n;p++)
{
if(p!=i&& p!=j && p!=k)
{
double s1=area(da[i],da[j],da[p]);
double s2=area(da[i],da[k],da[p]);
double s3=area(da[j],da[k],da[p]);
if(s==(s1+s2+s3))
{
//cout<<da[i].s<<" "<<da[j].s<<" "<<da[k].s<<" "<<da[p].s<<endl;
//cout<<s<<" "<<s1<<" "<<s2<<" "<<s3<<endl;
flag=1;
}
}
}
if(flag==0)
{
if(mx<s)
{
mx=s;
jg=da[i].s+da[j].s+da[k].s;
sort(jg.begin(),jg.end());
}
}
}
//cout<<endl;
}
}
}
cout<<jg<<endl;
}
return 0;
}