#include<iostream>
using namespace std;
struct Stu {
int Ch, Ma, En, ra;
int topo = Ch + Ma + En;
};
struct Tran {
int ttopo, tCh, tMa;
int sum = tCh + tMa;
int max = (tCh > tMa) ? tCh : tMa;
int flag1 = 0;
};
int main() {
int N;
Tran t[10000];
Tran temp;
cin >> N;
Stu S[10000];
for (int i = 0; i < N; i++) {
cin >> S[i].Ch >> S[i].Ma >> S[i].En;
}
for(int i = 0; i < N; i++ ) {
t[i].ttopo = S[i].topo;
t[i].tCh = S[i].Ch;
t[i].tMa = S[i].Ma;
}
int end = N;
while (end) {
int flag = 0;
for (int i = 0; i < end - 1; i++) {
if (t[i].ttopo < t[i + 1].ttopo) {
temp = t[i];
t[i] = t[i + 1];
t[i + 1] = temp;
flag = 1;
}
else if (t[i].ttopo = t[i + 1].ttopo) {
if (t[i].sum < t[i + 1].sum) {
temp = t[i];
t[i] = t[i + 1];
t[i + 1] = temp;
flag = 1;
}
if (t[i].sum = t[i + 1].sum) {
if (t[i].max < t[i + 1].max) {
temp = t[i];
t[i] = t[i + 1];
t[i + 1] = temp;
flag = 1;
}
if (t[i].max = t[i + 1].max) {
t[i + 1].flag1 = 1;
flag = 1;
}
}
}
}
if (flag == 0) break;
else end--;
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
if (t[i].ttopo == S[j].topo && t[i].tCh == S[j].Ch && t[i].tMa == S[j].Ma) {
if (t[i].flag1 == 1) S[j].ra = i;
else S[j].ra = i + 1;
}
}
}
for (int i = 0; i < N; i++) {
cout << S[i].ra << endl;
}
return 0;
}