#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <cctype>
// #include "debug.h"
using namespace std;
//浮点数陷阱比较时必须用绝对值abs,因为是比较是否在误差内相等。
struct X{
char name;
long long x,y;
X(char name,long long x,long long y){
this->x=x;this->y=y;
this->name=name;
}
X(){}
} a[16];
double area(int i,int j,int k){
return abs(0.5*((a[k].y-a[i].y)*(a[j].x-a[i].x)-(a[j].y-a[i].y)*(a[k].x-a[i].x)));
}
bool ok(int i,int j,int k,long long x){
if(i==j||i==k||j==k) return false;
if(a[i].x==a[j].x&&a[j].x==a[k].x&&a[i].y==a[j].y&&a[j].y==a[k].y) return false;
//neibu
for(int p=0;p<x;p++){
if(p!=i&&p!=j&&p!=k){
double ss=area(i,j,k),s1=area(i,j,p),s2=area(i,k,p),s3=area(k,p,j),ss1;
// printf("sad %.2f %2.f %.2f %.2f\n",ss,s1,s2,s3);
ss1=s1+s2+s3;
// cout<<ss1<<endl;
if(abs(ss-ss1)<1e-6)
return false;
}
}
return true;
}
int main(){
// std::ofstream file;
// file.open(OUTPUT_FILE, std::ios::out);
long long x,y,d1,d2;
double smax=0;
char cmax[4],c1;
while (cin>>x&&x!=0)
{
smax=0;
for(int i=0;i<x;i++){
cin>>c1>>d1>>d2;
a[i]=X(c1,d1,d2);
}
// cout<<ok(1,2,3,x)<<endl;
for(int i=0;i<x;i++){
for(int j=0;j<x;j++){
for(int k=0;k<x;k++){
if(ok(i,j,k,x)){
double ss=area(i,j,k);
// cout<<"ok"<<ss<<endl;
if(ss>smax){
smax=ss;
cmax[0]=a[i].name;
cmax[1]=a[j].name;
cmax[2]=a[k].name;
}
}
}
}
}
cmax[4]='\0';
cout<<cmax<<endl;
// file<<cmax<<endl;
// cout<<smax<<endl;s
}
return 0;
}