#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
class member
{
public:
string name;
string post;
long long contribution;
int level;
int n;
friend istream& operator >>(istream &input,member &people);
friend ostream& operator <<(ostream &output,member &people);
};
void change(int number);
int state(string str);
bool compare1(member a,member b);
bool compare2(member a,member b);
member people[110];
int main()
{
int number;
cin>>number;
for(int i=0;i<number;i++)
{
cin>>people[i];
people[i].n=i+1;
}
sort(people,people+number-1,compare1);
change(number);
sort(people,people+number-1,compare2);
for(int i=0;i<number;i++)
{
cout<<people[i]<<endl;
}
return 0;
}
istream& operator >>(istream &input,member &people)
{
input>>people.name>>people.post>>people.contribution>>people.level;
return input;
}
ostream& operator <<(ostream &output,member &people)
{
output<<people.name<<" "<<people.post<<" ";
output<<people.level;
return output;
}
void change(int number)
{
int order=0;
for(int i=0;i<number;i++)
{
if(people[i].post!="BangZhu"&&people[i].post!="FuBangZhu"&&people[i].name!="absi2011")
{
order++;
if(order<=2)
{
people[i].post="HuFa";
}
else if(order>2&&order<=6)
{
people[i].post="ZhangLao";
}
else if(order>6&&order<=13)
{
people[i].post="TangZhu";
}
else if(order>13&&order<=38)
{
people[i].post="JingYing";
}
else
{
people[i].post="BangZhong";
}
}
}
}
int state(string str)
{
if(str=="BangZhu")
{
return 1;
}
else if(str=="FuBangZhu")
{
return 2;
}
else if(str=="HuFa")
{
return 3;
}
else if(str=="ZhangLao")
{
return 4;
}
else if(str=="TangZhu")
{
return 5;
}
else if(str=="JingYing")
{
return 6;
}
else if(str=="BangZhong")
{
return 7;
}
}
bool compare1(member a,member b)
{
if(a.contribution!=b.contribution)
{
return a.contribution>b.contribution;
}
else if(a.contribution==b.contribution)
{
return a.n<b.n;
}
}
bool compare2(member a,member b)
{
if(state(a.post)!=state(b.post))
{
return state(a.post)<state(b.post);
}
else if(state(a.post)==state(b.post))
{
if(a.level!=b.level)
{
return a.level>b.level;
}
else if(a.level==b.level)
{
return a.n<b.n;
}
}
}