#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
#define int long long
using namespace std;
using namespace __gnu_pbds;
struct node
{
int au;
int id;
}a[200005];
struct node1
{
int ag;
int id;
}b[200005];
struct node2
{
int cu;
int id;
}c[200005];
int n;
inline void solve(int id)
{
int ai=0,bi=0,ci=0;
for(int i=1;i<=n;i++)
{
if(a[i].id==id)
{
for(int j=i;j>=1;j--)
{
if(a[j-1].au!=a[i].au){ai=j;break;}
}
}
if(c[i].id==id)
{
for(int j=i;j>=1;j--)
{
if(c[j-1].cu!=c[i].cu){ci=j;break;}
}
}
if(b[i].id==id)
{
for(int j=i;j>=1;j--)
{
if(b[j-1].ag!=b[i].ag){bi=j;break;}
}
}
if(ai!=0 and bi!=0 and ci!=0)break;
}
cout<<min(ai,min(bi,ci));
}
inline bool cmpa(node a,node b)
{
if(a.au!=b.au)
return a.au>b.au;
return a.id<b.id;
}
inline bool cmpb(node1 a,node1 b)
{
if(a.ag!=b.ag)
return a.ag>b.ag;
return a.id<b.id;
}
inline bool cmpc(node2 a,node2 b)
{
if(a.cu!=b.cu)
return a.cu>b.cu;
return a.id<b.id;
}
signed main()
{
cin>>n;
for(register int i=1;i<=n;i++)
{
cin>>a[i].au>>b[i].ag>>c[i].cu;
a[i].id=i;
b[i].id=i;
c[i].id=i;
}
sort(a+1,a+1+n,cmpa);
sort(b+1,b+1+n,cmpb);
sort(c+1,c+1+n,cmpc);
for(int i=1;i<=n;i++)
{
solve(i);
puts("");
}
return 0;
}