#include<iostream>
#include<algorithm>
using namespace std;
string position_arr[] = { "BangZhu","FuBangZhu","HuFa","ZhangLao","TangZhu","JingYing","BangZhong" };
struct Person {
string name,last_position,now_position;
long long points;
int level,h;
}Person_arr[150];
int index(string position) {
return position_arr->find(position);
}
bool cmp1(Person p1,Person p2) {
if (p1.points == p2.points) { return p1.h < p2.h; }
return p1.points > p2.points;
}
bool cmp2(Person p1, Person p2) {
if (p1.now_position == p2.now_position) {
if (p1.level == p2.level) { return p1.h < p2.h; }
return p1.level > p2.level;
}
return index(p1.now_position) < index(p2.now_position);
}
void assign(int length) {
for (int i = 0; i < length; i++) {
if (i == 0) { Person_arr[i].now_position = position_arr[0]; }
else if (i == 1 || i == 2) { Person_arr[i].now_position = position_arr[1]; }
else if (i == 3 || i == 4) { Person_arr[i].now_position = position_arr[2]; }
else if (i >= 5 && i <= 8) { Person_arr[i].now_position = position_arr[3]; }
else if (i >= 9 && i <= 15) { Person_arr[i].now_position = position_arr[4]; }
else if (i >= 16 && i <= 40) { Person_arr[i].now_position = position_arr[5]; }
else { Person_arr[i].now_position = position_arr[6]; }
}
}
void display(int length) {
for (int i = 0; i < length; i++) {
cout << Person_arr[i].name << " " << Person_arr[i].now_position << " " << Person_arr[i].level <<endl;
}
}
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
Person p;
cin >> p.name >> p.last_position;
cin >> p.points;
cin >> p.level;
p.h = i;
Person_arr[i] = p;
}
sort(Person_arr + 3, Person_arr + n, cmp1);
assign(n);
sort(Person_arr + 1, Person_arr + n, cmp2);
display(n);
return 0;
}