#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
typedef struct Node{
char name[32];
char zhiwei[32];
long int banggong;
int dengji;
}Ren;
int main(void)
{
int n,i,j,len,counts[6]={0};
Ren rens[200],temp;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s%s%ld%d",rens[i].name,rens[i].zhiwei,&rens[i].banggong,&rens[i].dengji);
}
int f=0;
for(i=0;i<n;i++)
{
if(rens[i].zhiwei=="BangZhu")
{
temp=rens[0];
rens[0]=rens[i];
rens[i]=temp;
}
if(rens[i].zhiwei=="FuBangZhu"&&f==0)
{
f++;
temp=rens[1];
rens[1]=rens[i];
rens[i]=temp;
}
if(rens[i].zhiwei=="FuBangZhu"&&f==1)
{
temp=rens[1];
rens[1]=rens[i];
rens[i]=temp;
}
}
for(i=3;i<n;i++)
{
for(j=3;j<n-i+2;j++)
{
if(rens[j].banggong<rens[j+1].banggong)
{
temp=rens[j];
rens[j]=rens[j+1];
rens[j+1]=temp;
}
}
}
for(i=3;i<n;i++)
{
if(i>=3&&i<=4)
{
strcpy(rens[i].zhiwei,"HuFa");
counts[0]++;
}
else if(i>=5&&i<=8)
{
strcpy(rens[i].zhiwei,"ZhangLao");
counts[1]++;
}
else if(i>=9&&i<=15)
{
strcpy(rens[i].zhiwei,"TangZhu");
counts[2]++;
}
else if(i>=16&&i<=40)
{
strcpy(rens[i].zhiwei,"JingYing");
counts[3]++;
}
else
{
strcpy(rens[i].zhiwei,"BangZhong");
counts[4]++;
}
}
for(i=3;i<n;i++)
{
for(j=3;j<3+counts[0]-1;j++)
{
if(rens[j].dengji<rens[j+1].dengji)
{
temp=rens[j];
rens[j]=rens[j+1];
rens[j+1]=temp;
}
}
for(j=5;j<5+counts[1]-1;j++)
{
if(rens[j].dengji<rens[j+1].dengji)
{
temp=rens[j];
rens[j]=rens[j+1];
rens[j+1]=temp;
}
}
for(j=9;j<9+counts[2]-1;j++)
{
if(rens[j].dengji<rens[j+1].dengji)
{
temp=rens[j];
rens[j]=rens[j+1];
rens[j+1]=temp;
}
}
for(j=16;j<16+counts[3]-1;j++)
{
if(rens[j].dengji<rens[j+1].dengji)
{
temp=rens[j];
rens[j]=rens[j+1];
rens[j+1]=temp;
}
}
for(j=41;j<41+counts[4]-1;j++)
{
if(rens[j].dengji<rens[j+1].dengji)
{
temp=rens[j];
rens[j]=rens[j+1];
rens[j+1]=temp;
}
}
}
for(i=0;i<n;i++)
{
printf("%s %s %d\n",rens[i].name,rens[i].zhiwei,rens[i].dengji);
}
return 0;
}