#include<iostream>
#include<algorithm>
using namespace std;
const int s=1e5+10;
struct stu{
string score;
int id;
int mc;
}a[s];
bool cmp1(stu a,stu b){
if(a.score.size()!=b.score.size()) return a.score.size()>b.score.size();
else return a.score>b.score;
}
bool cmp2(stu a,stu b){
return a.id<b.id;
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].score;
a[i].id = i;
}
sort(a+1,a+1+n,cmp1);
int cnt=1;
for(int i=1;i<=n;i++){
if(i1)a[i].mc=cnt;
else if(a[i].scorea[i-1].score)a[i].mc=cnt;
else a[i].mc=i,cnt=i;
}
sort(a+1,a+1+n,cmp2);
for(int i=1;i<=n;i++){
cout<<a[i].mc<<endl;
}
return 0;
}