#include <bits/stdc++.h>
using namespace std;
const int N=2*1e5+10;
struct Medal{
int g,s,b,xb,pm;
} a[N],s1[N],s2[N],s3[N];
struct Ans{
int M,rk;
}ans1[N],ans2[N],ans3[N],ret1[N],ret2[N],ret3[N];
int n;
int bs1(Ans a[],int k){
int l=0,r=n-1;
while(l<=r){
int mid=l+(r-l)/2;
if(a[mid].M>k) r=mid-1;
else if(a[mid].M<k) l=mid+1;
else if(a[mid].M==k) r=mid-1;
}
if(a[l].M==k)return l;
return -1;
}
bool cmp1(Medal ta,Medal tb){return ta.g>tb.g;}
bool cmp2(Medal ta,Medal tb){return ta.s>tb.s;}
bool cmp3(Medal ta,Medal tb){return ta.b>tb.b;}
bool cmp4(Ans a,Ans b){return a.M<b.M;}
int main(){
cin>>n;
for(int i=0;i<n;i++) {
cin>>a[i].g>>a[i].b>>a[i].s;
a[i].xb=i;
s1[i]={a[i].g,a[i].b,a[i].s,i};
s2[i]={a[i].g,a[i].b,a[i].s,i};
s3[i]={a[i].g,a[i].b,a[i].s,i};
}
sort(s1,s1+n,cmp1);
sort(s2,s2+n,cmp2);
sort(s3,s3+n,cmp3);
for(int i=0;i<n;i++){
ans1[s1[i].xb]={s1[i].g,i+1};
ans2[s2[i].xb]={s2[i].s,i+1};
ans3[s3[i].xb]={s3[i].b,i+1};
ret1[s1[i].xb]={s1[i].g,i+1};
ret2[s2[i].xb]={s2[i].s,i+1};
ret3[s3[i].xb]={s3[i].b,i+1};
}
sort(ans1,ans1+n,cmp4);
sort(ans2,ans2+n,cmp4);
sort(ans3,ans3+n,cmp4);
for(int i=0;i<n;i++){
int tmp1=bs1(ans1,ret1[i].M);
int tmp2=bs1(ans2,ret2[i].M);
int tmp3=bs1(ans3,ret3[i].M);
cout<<min(ans1[tmp1].rk,min(ans2[tmp2].rk,ans3[tmp3].rk))<<endl;
}
return 0;
}