#include<bits/stdc++.h>
using namespace std;
int n;
struct stu{
int jp;
int yp;
int tp;
int id;
int pm=999999;
}xs[1000000];
bool cmp1(stu x,stu y){
return x.jp>y.jp;
}
bool cmp2(stu x,stu y){
return x.yp>y.yp;
}
bool cmp3(stu x,stu y){
return x.tp>y.tp;
}
bool cmp4(stu x,stu y){
return x.id<y.id;
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++){
cin>>xs[i].jp>>xs[i].yp>>xs[i].tp;
xs[i].id=i;
}
sort(xs+1,xs+1+n,cmp1);
for(int i=1;i<=n;i++){
int jps=xs[i].jp;
int pms=i-1;
int id=xs[i].id;
while(1){
if(pms>=1&&xs[pms].jp==xs[i].jp){
pms--;
}
else{
break;
}
}
if(xs[i].pm>pms)xs[i].pm=pms+1;
}
sort(xs+1,xs+1+n,cmp2);
for(int i=1;i<=n;i++){
int jps=xs[i].yp;
int pms=i-1;
int id=xs[i].id;
while(1){
if(pms>=1&&xs[pms].yp==xs[i].yp){
pms--;
}
else{
break;
}
}
if(xs[i].pm>pms)xs[i].pm=pms+1;
}
sort(xs+1,xs+1+n,cmp3);
for(int i=1;i<=n;i++){
int jps=xs[i].tp;
int pms=i-1;
int id=xs[i].id;
while(1){
if(pms>=1&&xs[pms].tp==xs[i].tp){
pms--;
}
else{
break;
}
}
if(xs[i].pm>pms)xs[i].pm=pms+1;
}
sort(xs+1,xs+1+n,cmp4);
for(int i=1;i<=n;i++){
cout<<xs[i].pm<<endl;
}
return 0;
}