import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
//도현이네 반 학생 수 입력받음
int N = Integer.parseInt(br.readLine());
String[][] member = new String[N][4];
for(int i=0; i<N; i++) { //학생들의 이름, 성적을 입력받아 배열에 저장
StringTokenizer st = new StringTokenizer(br.readLine());
member[i][0] = st.nextToken();
member[i][1] = st.nextToken();
member[i][2] = st.nextToken();
member[i][3] = st.nextToken();
}
//Comparator 를 사용하여 비교
Arrays.sort(member, new Comparator<String[]>() {
@Override
public int compare(String[] o1, String[]o2) {
//국어성적이 다를 때, 감소하는 순서로
if(Integer.parseInt(o2[1]) != Integer.parseInt(o1[1]) )
return Integer.compare(Integer.parseInt(o2[1]), Integer.parseInt(o1[1]));
else { //국어성적이 같을 때, 영어점수 증가 순서로
if(Integer.parseInt(o2[2]) != Integer.parseInt(o1[2]) )
return Integer.compare(Integer.parseInt(o1[2]), Integer.parseInt(o2[2]));
else { // 국어, 영어 점수가 같으면, 수학점수 감소하는 순서로
if(Integer.parseInt(o2[3]) != Integer.parseInt(o1[3]) )
return Integer.compare(Integer.parseInt(o2[3]), Integer.parseInt(o1[3]));
else { // 국영수가 같으면 이름으로 오름차순
return o1[0].compareTo(o2[0]);
}
}
}
}
});
for(int i=0; i<N; i++) {
bw.write(member[i][0] + "\n");
}
br.close(); bw.flush(); bw.close();
}
} cs