using namespace std;
struct person{
string name,poisition;
int c,rank,number;
}a[200];
int n;
bool cmp(person x,person y){
if(x.c!=y.c)
return x.c>y.c;
return x.number<y.number;
}
bool cmp2(person x,person y){
if(x.poisition==y.poisition&&x.rank!=y.rank)
return x.rank>y.rank;
return x.number<y.number;
}
int main()
{
scanf("%d",&n);
for(int i=0;i<n;++i){
cin>>a[i].name>>a[i].poisition>>a[i].c>>a[i].rank;
a[i].number=i;
}
sort(a+3,a+n,cmp);
for(int i=3;i<n;++i){
if(i<=4)
a[i].poisition="HuFa";
else if(i<=8)
a[i].poisition="ZhangLao";
else if(i<=15)
a[i].poisition="TangZhu";
else if(i<=40)
a[i].poisition="JingYing";
else a[i].poisition="BangZhong";
}
for(int i=4;i<n;++i){
if(i==4)
sort(a+3,a+4,cmp2);
else if(i<=8&&i>5)
sort(a+5,a+i,cmp2);
else if(i>9&&i<=15)
sort(a+9,a+i,cmp2);
else if(i>16&&i<=40)
sort(a+16,a+i,cmp2);
else if(i>40)break;
}
if(n>41)sort(a+41,a+n,cmp2);
for(int i=0;i<n;++i)
{
cout<<a[i].name<<" "<<a[i].poisition<<" "<<a[i].rank<<endl;
}
return 0;
}