#include <algorithm>
#include <iostream>
#include <stdio.h>
#include <vector>
using namespace std;
struct Grade {
string name;
int kor, eng, math;
};
bool compare(Grade a, Grade b) {
if ((a.eng == b.eng) && (a.kor == b.kor) && (a.math == b.math)) {
return a.name < b.name;
}
if ((a.eng == b.eng) && (a.kor == b.kor)) {
return a.math > b.math;
}
if (a.kor == b.kor) {
return a.eng < b.eng;
}
return a.kor > b.kor;
}
int main() {
//freopen("input.txt", "rt", stdin);
int n;
scanf("%d", &n);
vector<Grade> p(n);
for (int i = 0; i < n; i++) {
cin >> p[i].name >> p[i].kor >> p[i].eng >> p[i].math;
}
stable_sort(p.begin(), p.end(), compare);
for (int i = 0; i < n; i++) {
cout << p[i].name << '\n';
}
return 0;
}