#include<iostream>
#include<string.h>
using namespace std;
void birthday(struct individual *pointer,int n);
struct individual{
char name[20];
int year;
int month;
int day;
};
individual e[100];
int main()
{
int n,i;
cin>>n;
for(i=0;i<n;i++)
{
cin>>e[i].name>>e[i].year>>e[i].month>>e[i].day;
}
birthday(e,n);
}
void birthday(struct individual *pointer,int n)
{
int j,k,l;
char tn[20];
for(j=0;j<n-1;j++)
{
for(k=0;k<n-1;k++)
{
if((*(pointer+k)).year==(*(pointer+k+1)).year)
{
if((*(pointer+k)).month==(*(pointer+k+1)).month)
{
if((*(pointer+k)).day>(*(pointer+k+1)).day)
{
strcpy(tn,(*(pointer+k)).name);
strcpy((*(pointer+k)).name,(*(pointer+k+1)).name);
strcpy((*(pointer+k+1)).name,tn);
}
}
if((*(pointer+k)).month>(*(pointer+k+1)).month)
{
strcpy(tn,(*(pointer+k)).name);
strcpy((*(pointer+k)).name,(*(pointer+k+1)).name);
strcpy((*(pointer+k+1)).name,tn);
}
}
if((*(pointer+k)).year>(*(pointer+k+1)).year)
{
strcpy(tn,(*(pointer+k)).name);
strcpy((*(pointer+k)).name,(*(pointer+k+1)).name);
strcpy((*(pointer+k+1)).name,tn);
}
}
}
for(l=0;l<n;l++)
{
cout<<(*(pointer+l)).name<<"\n";
}
}