#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
struct Student {
int id;
int gold, silver, bronze;
bool operator<(const Student& other) const {
if (gold != other.gold) return gold > other.gold;
if (silver != other.silver) return silver > other.silver;
return bronze > other.bronze;
}
};
int main() {
int n;
cin >> n;
vector<Student> students(n);
for (int i = 0; i < n; ++i) {
cin >> students[i].gold >> students[i].silver >> students[i].bronze;
students[i].id = i;
}
vector<int> best_rank(n, n);
sort(students.begin(), students.end());
for (int i = 0; i < n; ++i) {
best_rank[students[i].id] = min(best_rank[students[i].id], i + 1);
}
sort(students.begin(), students.end(), [](const Student& a, const Student& b) {
if (a.silver != b.silver) return a.silver > b.silver;
if (a.gold != b.gold) return a.gold > b.gold;
return a.bronze > b.bronze;
});
for (int i = 0; i < n; ++i) {
best_rank[students[i].id] = min(best_rank[students[i].id], i + 1);
}
sort(students.begin(), students.end(), [](const Student& a, const Student& b) {
if (a.bronze != b.bronze) return a.bronze > b.bronze;
if (a.silver != b.silver) return a.silver > b.silver;
return a.gold > b.gold;
});
for (int i = 0; i < n; ++i) {
best_rank[students[i].id] = min(best_rank[students[i].id], i + 1);
}
for (int i = 0; i < n; ++i) {
cout << best_rank[i] << endl;
}
return 0;
}