#include<bits/stdc++.h>
using namespace std;
string zw[8]={"BangZhu","FuBangZhu","HuFa","ZhangLao","TangZhu","JingYing","BangZhong"};
struct bz{
string name;
string job;
int job1;
int bg,dj;
int f;
}arr[120];
bool cmp1(bz a,bz b){
if(a.f!=1&&b.f!=1) return a.bg>b.bg;
}
bool cmp2(bz a,bz b){
if(a.job1==b.job1) return a.dj>b.dj;
else return a.job1<b.job1;
}
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>arr[i].name>>arr[i].job>>arr[i].bg>>arr[i].dj;
if(arr[i].job=="BangZhu"||arr[i].job=="FuBangZhu") arr[i].f=1;
else arr[i].f=0;
}
sort(arr,arr+n,cmp1);
int cnt=0;
for(int i=0;i<n;i++){
if(!arr[i].f) ++cnt;
if(arr[i].job=="BangZhu"){
arr[i].job1=0;
continue;
}
if(arr[i].job=="FuBangZhu"){
arr[i].job1=1;
continue;
}
if(cnt>=1&&cnt<=2){
arr[i].job1=2;
arr[i].job="HuFa";
}
else if(cnt>=3&&cnt<=6){
arr[i].job1=3;
arr[i].job="ZhangLao";
}
else if(cnt>=7&&cnt<=13){
arr[i].job1=4;
arr[i].job="TangZhu";
}
else if(cnt>=14&&cnt<=38){
arr[i].job1=5;
arr[i].job="JingYing";
}else if(cnt>=39){
arr[i].job1=6;
arr[i].job="BangZhong";
}
}
sort(arr,arr+n,cmp2);
for(int i=0;i<n;i++){
cout<<arr[i].name<<" "<<arr[i].job<<" "<<arr[i].dj<<endl;
}
return 0;
}