#include <bits/stdc++.h>
using namespace std;
int n;
struct node{
string s;
string z;
string zz;
long long bg;
int le,h;
}r[10000];
int c(string a){
if(a=="BangZhu") return 0;
if(a=="FuBangZhu") return 1;
if(a=="HuFa") return 2;
if(a=="ZhaoLao") return 3;
if(a=="TangZhu") return 4;
if(a=="JingYing") return 5;
if(a=="BangZhong") return 6;
}
int cmp(node a,node b){
if(a.bg==b.bg) return a.h<b.h;
else return a.h>b.h;
}
int cmpp(node a,node b){
if(c(a.zz)==c(b.zz)){
if(a.le==b.le){
return a.le>b.le;
}
}
return c(a.zz)<c(b.zz);
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>r[i].s>>r[i].z>>r[i].bg>>r[i].le;
}sort(r+1,r+n+1,cmp);
for (int i=1;i<=n;i++){
if (i==1) r[i].zz="BangZhu";
else if (i==2||i==3) r[i].zz="FuBangZhu";
else if (i==4||i==5) r[i].zz="HuFa";
else if (i>=6&&i<=9) r[i].zz="ZhangLao";
else if (i>=10&&i<=16) r[i].zz="TangZhu";
else if (i>=17&&i<=41) r[i].zz="JingYing";
else r[i].zz="BangZhong";
}
sort(r+1,r+n+1,cmpp);
for(int i=1;i<=n;i++){
cout<<r[i].s<<" "<<r[i].zz<<" "<<r[i].le<<endl;
}
return 0;
}