import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;
public class Main {
static int n;
static ArrayList<Student> students = new ArrayList<Student>();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
n =Integer.parseInt(st.nextToken());
for(int i = 0;i<n;i++) {
Student student = new Student();
st = new StringTokenizer(br.readLine());
student.name = st.nextToken();
student.year = Integer.parseInt(st.nextToken());
student.mouth = Integer.parseInt(st.nextToken());
student.day = Integer.parseInt(st.nextToken());
student.index = i;
students.add(student);
}
Collections.sort(students);
for(int i = 0;i<n;i++) {
System.out.println(students.get(i).name);
}
}
static class Student implements Comparable<Student>{
String name;
int year;
int mouth;
int day;
int index;
@Override
public int compareTo(Student o) {
// TODO Auto-generated method stub
if(o.year > this.year) {
return -1;
}else if(o.year < this.year) {
return 1;
}else {
if(o.mouth>this.mouth) {
return -1;
}else if(o.mouth < this.mouth) {
return 1;
}else {
if(o.day> this.day) {
return -1;
}else if(o.day<this.day) {
return 1;
}else {
if(o.index > this.index) {
return 1;
}else {
return -1;
}
}
}
}
}
}
}