#include<iostream>
#include<algorithm>
#include<string>
#include<cstring>
using namespace std;
int n;
int ans=1;
struct person
{
char name[35];
char job[35];
int g;
int s;
int number;
}a[150],temp;
bool cmp(person a,person b)
{
if(a.g>b.g) return true;
else if(a.g=b.g)
{
if(a.number<b.number) return true;
else return false;
}
else return false;
}
bool cmpp(person a,person b)
{
if(strcmp(a.job,b.job)==0)
{
if(a.s>b.s) return true;
else if(a.s==b.s)
{
if(a.number<b.number) return true;
else return false;
}
else return false;
}
else return false;
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i].name>>a[i].job>>a[i].g>>a[i].s;
a[i].number=i;
}
for(int i=0;i<n;i++)
{
if(strcmp(a[i].job,"BangZhu")==0)
{
strcpy(temp.name,a[i].name);
strcpy(temp.job,a[i].job);
temp.g=a[i].g;
temp.s=a[i].s;
temp.number=a[i].number;
strcpy(a[i].name,a[0].name);
strcpy(a[i].job,a[0].job);
a[i].g=a[0].g;
a[i].s=a[0].s;
a[i].number=a[0].number;
strcpy(a[0].name,temp.name);
strcpy(a[0].job,temp.job);
a[0].g=temp.g;
a[0].s=temp.s;
a[0].number=temp.number;
}
if(strcmp(a[i].job,"FuBangZhu")==0)
{
strcpy(temp.name,a[i].name);
strcpy(temp.job,a[i].job);
temp.g=a[i].g;
temp.s=a[i].s;
temp.number=a[i].number;
strcpy(a[i].name,a[ans].name);
strcpy(a[i].job,a[ans].job);
a[i].g=a[ans].g;
a[i].s=a[ans].s;
a[i].number=a[ans].number;
strcpy(a[ans].name,temp.name);
strcpy(a[ans].job,temp.job);
a[ans].g=temp.g;
a[ans].s=temp.s;
a[ans].number=temp.number;
ans++;
}
}
sort(a+3,a+n,cmp);
for(int i=3;i<sizeof(a)/sizeof(person);i++)
{
if(i>=3&&i<=4) strcpy(a[i].job,"HuFa");
else if(i>=5&&i<=8) strcpy(a[i].job,"ZhangLao");
else if(i>=9&&i<=15) strcpy(a[i].job,"TangZhu");
else if(i>=16&&i<=30) strcpy(a[i].job,"JingYing");
else strcpy(a[i].job,"BangZhong");
}
sort(a+1,a+n,cmpp);
for(int i=0;i<n;i++)
{
cout<<a[i].name<<' '<<a[i].job<<' '<<a[i].s;
if(i!=n-1) cout<<endl;
}
return 0;
}