#include<bits/stdc++.h>
using namespace std;
int n,a,b,c;
bool op;
struct node{
char name[33],job[33];
int length,length1,zj;
int bg,dj;
}bang[120];
bool cmp(node a,node b){
if(a.bg==b.bg){
return a.dj>=b.dj;
}
return a.bg>b.bg;
}
bool cmp1(node a,node b){
if(a.zj==b.zj){
return a.dj>b.dj;
}
return a.zj<b.zj;
}
void swap(node a,node b){
int bg=a.bg;
int dj=a.dj;
int length1=a.length1;
char name[33];
char job[33];
for(int i=0; i<=30; i++){
name[i]=a.name[i];
job[i]=a.job[i];
}
a.bg=b.bg;
a.dj=b.dj;
a.length1=b.length1;
for(int i=0; i<=30; i++){
a.name[i]=b.name[i];
a.job[i]=b.job[i];
}
b.bg=bg;
b.dj=dj;
b.length1=length1;
for(int i=0; i<=30; i++){
b.name[i]=name[i];
b.job[i]=job[i];
}
}
bool check1(node a){
if(a.job[0]!='B'||a.job[1]!='a'||a.job[2]!='n'||a.job[3]!='g'||a.job[4]!='Z'||a.job[5]!='h'||a.job[6]!='u'){
return false;
}
return true;
}
bool check2(node a){
if(a.job[0]!='F'||a.job[1]!='u'||a.job[2]!='B'||a.job[3]!='a'||a.job[4]!='n'||a.job[5]!='g'||a.job[6]!='Z'||a.job[7]!='h'||a.job[8]!='u'){
return false;
}
return true;
}
int main(){
scanf("%d",&n);
for(int i=1; i<=n; i++){
cin >> bang[i].name;
for(int j=0; j<=30; j++){
if(bang[i].name[j]!=0){
bang[i].length1++;
}
}
cin >> bang[i].job;
if(check1(bang[i])) a=i;
if(check2(bang[i])&&op==0) b=i,op=1;
if(check2(bang[i])&&op==1) c=i;
cin >> bang[i].bg;
cin >> bang[i].dj;
}
swap(bang[1],bang[a]);
swap(bang[2],bang[b]);
swap(bang[3],bang[c]);
sort(bang+4,bang+n+1,cmp);
bang[1].job[1]='B';
bang[1].job[2]='a';
bang[1].job[3]='n';
bang[1].job[4]='g';
bang[1].job[5]='Z';
bang[1].job[6]='h';
bang[1].job[7]='u';
bang[1].length=7;
bang[1].zj=1;
for(int i=2; i<=3; i++){
bang[i].length=9;
bang[i].job[1]='F';
bang[i].job[2]='u';
bang[i].job[3]='B';
bang[i].job[4]='a';
bang[i].job[5]='n';
bang[i].job[6]='g';
bang[i].job[7]='Z';
bang[i].job[8]='h';
bang[i].job[9]='u';
bang[i].zj=2;
}
for(int i=4; i<=5; i++){
bang[i].length=4;
bang[i].job[1]='H';
bang[i].job[2]='u';
bang[i].job[3]='F';
bang[i].job[4]='a';
bang[i].zj=3;
}
for(int i=6; i<=9; i++){
bang[i].job[1]='Z';
bang[i].job[2]='h';
bang[i].job[3]='a';
bang[i].job[4]='n';
bang[i].job[5]='g';
bang[i].job[6]='L';
bang[i].job[7]='a';
bang[i].job[8]='o';
bang[i].length=8;
bang[i].zj=4;
}
for(int i=10; i<=16; i++){
bang[i].job[1]='T';
bang[i].job[2]='a';
bang[i].job[3]='n';
bang[i].job[4]='g';
bang[i].job[5]='Z';
bang[i].job[6]='h';
bang[i].job[7]='u';
bang[i].length=7;
bang[i].zj=5;
}
for(int i=17; i<=41; i++){
bang[i].job[1]='J';
bang[i].job[2]='i';
bang[i].job[3]='n';
bang[i].job[4]='g';
bang[i].job[5]='Y';
bang[i].job[6]='i';
bang[i].job[7]='n';
bang[i].job[8]='g';
bang[i].length=8;
bang[i].zj=6;
}
for(int i=42; i<=n; i++){
bang[i].job[1]='B';
bang[i].job[2]='a';
bang[i].job[3]='n';
bang[i].job[4]='g';
bang[i].job[5]='Z';
bang[i].job[6]='h';
bang[i].job[7]='o';
bang[i].job[8]='n';
bang[i].job[9]='g';
bang[i].length=9;
bang[i].zj=7;
}
sort(bang+1,bang+1+n,cmp1);
for(int i=1; i<=n; i++){
for(int j=0; j<bang[i].length1; j++){
printf("%c",bang[i].name[j]);
}
printf(" ");
for(int j=1; j<=bang[i].length; j++){
printf("%c",bang[i].job[j]);
}
printf(" ");
printf("%d\n",bang[i].dj);
}
}