#include<bits/stdc++.h>
using namespace std;
long long n;
struct wbx{
long long x,y,T,I;
string name,work;
}a[1005];
bool cmp(wbx x,wbx y)
{
if(x.x!=y.x)
return x.x>y.x;
return x.I<y.I;
}
bool cmp1(wbx x,wbx y){
if(x.T!=y.T) return x.T<y.T;
else
if(x.y!=y.y) return x.y>y.y;
else return x.I<y.I;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i].name>>a[i].work>>a[i].x>>a[i].y,a[i].I=i;
sort(a+4,a+1+n,cmp);
for(int i=1;i<=n;i++){
if (i==1) a[i].work="BangZhu";
else if (i==2||i==3) a[i].work="FuBangZhu";
else if (i==4||i==5) a[i].work="HuFa";
else if (i>=6&&i<=9) a[i].work="ZhangLao";
else if (i>=10&&i<=16) a[i].work="TangZhu";
else if (i>=17&&i<=41) a[i].work="JingYing";
else a[i].work="BangZhong";
}
for(int i=1;i<=n;i++)
{
if(a[i].work=="BangZhu") a[i].T=1;
if(a[i].work=="FuBangZhu")a[i].T=2;
if(a[i].work=="HuFa") a[i].T=3;
if(a[i].work=="ZhangLao") a[i].T=4;
if(a[i].work=="TangZhu") a[i].T=5;
if(a[i].work=="JingYing") a[i].T=6;
if(a[i].work=="BangZhong")a[i].T=7;
}
sort(a+1,a+1+n,cmp1);
for(int i=1;i<=n;i++)
{
cout<<a[i].name<<" "<<a[i].work<<" "<<" "<<a[i].y;
cout<<endl;
}
return 0;
}