// R38823231 #include using namespace std; struct node { string name; int y, m, d, i; node() { name = ""; y = m = d = i = 0; } }; bool cmp(node a, node b) { if (a.y == b.y) { if (a.m == b.m) { if (a.d == b.d) { return a.i > b.i; } return a.d < b.d; } return a.m < b.m; } return a.y < b.y; } int main() { int n; node a[1005]; cin >> n; for (int i = 0; i < n; i++) { cin >> a[i].name >> a[i].y >> a[i].m >> a[i].d; a[i].i = i; } sort(a, a + n, cmp); for (int i = 0; i < n; i++) { cout << a[i].name << endl; } return 0; }