#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct people{
string name,zw;
ll bg,lv,nm,noz;
};
int n;
people p[1200];
bool cmp1(const people&a,const people&b){
if(a.bg>=b.bg||a.bg==b.bg&&a.nm<b.nm) return 1;
return 0;
}
bool cmp2(const people&a,const people&b){
if(a.noz==b.noz){
if(a.lv==b.lv) return a.nm<b.nm;
return a.lv>b.lv;
}
return a.noz>b.noz;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>p[i].name>>p[i].zw>>p[i].bg>>p[i].lv;
p[i].nm=i;
}
sort(p+4,p+1+n,cmp1);
for(int i=1;i<=n;i++){
if(i==1){
p[i].zw="BangZhu";
p[i].noz=7;
}
else if(i<=3){
p[i].zw="FuBangZhu";
p[i].noz=6;
}
else if(i<=5){
p[i].zw="HuFa";
p[i].noz=5;
}
else if(i<=9){
p[i].zw="ZhangLao";
p[i].noz=4;
}
else if(i<=16){
p[i].zw="TangZhu";
p[i].noz=3;
}
else if(i<=41){
p[i].zw="JingYing";
p[i].noz=2;
}
else{
p[i].zw="BangZhong";
p[i].noz=1;
}
}
sort(p+1,p+1+n,cmp2);
for(int i=1;i<=n;i++) cout<<p[i].name<<" "<<p[i].zw<<" "<<p[i].lv<<endl;
return 0;
}