#include<bits/stdc++.h>
using namespace std;
struct p{
int c,m,e,w,t,t1,g;
}a[10001];
bool cmp1(p d,p f){
if(d.t!=f.t){
return d.t>f.t;
}
else if(d.t1!=f.t1){
return d.t1>f.t1;
}
else if(max(d.c,d.m)!=max(f.c,f.m)){
return max(d.c,d.m)>max(f.c,f.m);
}
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].c>>a[i].m>>a[i].e;
a[i].t=a[i].c+a[i].e+a[i].m;
a[i].t1=a[i].c+a[i].m;
a[i].w=i;
}
sort(a+1,a+1+n,cmp1);
for(int i=1;i<=n;i++){
cout<<a[i].t1<<endl;
}
int c=1;
a[c].g=1;
while((c+1)<=n){
if(a[c].t==a[c+1].t&&a[c].t1==a[c+1].t1&&max(a[c].c,a[c].m)==max(a[c+1].c,a[c+1].m)){
a[c+1].g=a[c].g;
}
else{
a[c+1].g=c+1;
}
c++;
}
for(int i=1;i<=n;i++){
cout<<a[a[i].w].g<<endl;
}
}