#include <bits/stdc++.h>
using namespace std ;
struct child {
int g , s , b ;
int num1 , num2 , num3 , i ;
}kid[1000001];
bool cmp1 ( child a , child b ) {
return a.g > b.g ;
}
bool cmp2 ( child a , child b ) {
return a.s > b.s ;
}
bool cmp3 ( child a , child b ) {
return a.b > b.b ;
}
bool cmp4 ( child a , child b ) {
return a.i < b.i ;
}
int main () {
ios::sync_with_stdio(0) ;
int n ;
cin >> n ;
for ( int i = 1 ; i <= n ; i++ ) {
cin >> kid[i].g >> kid[i].s >> kid[i].b ;
kid[i].i = i ;
}
sort ( kid+1 , kid+n+1 , cmp1 ) ;
for ( int i = 1 ; i <= n ; i ++ ) {
int j = i ;
while ( kid[j].g == kid[j-1].g && j != 1 ) j-- ;
kid[i].num1 = j ;
}
sort ( kid+1 , kid+n+1 , cmp2 ) ;
for ( int i = 1 ; i <= n ; i ++ ) {
int j = i ;
while ( kid[j].s == kid[j-1].s && j != 1 ) j-- ;
kid[i].num2 = j ;
}
sort ( kid+1 , kid+n+1 , cmp3 ) ;
for ( int i = 1 ; i <= n ; i ++ ) {
int j = i ;
while ( kid[j].b == kid[j-1].b && j != 1 ) j-- ;
kid[i].num3 = j ;
}
sort ( kid+1 , kid+n+1 , cmp4 ) ;
for ( int i = 1 ; i <= n ; i ++ ) {
cout << min ( kid[i].num1 , min ( kid[i].num2 , kid[i].num3 ) ) << endl ;
}
return 0 ;
}