#include <bits/stdc++.h>
using namespace std;
map <int,int> m;
int a[100010];
int main(){
int n,i;
scanf("%d",&n);
//求每个数字出现的次数
for(i = 1;i <= n;i++){
cin>>a[i];
//如果x在map中没有出现过
if(m.count(a[i]) == 0){
m[a[i]] = 1;
}else{
m[a[i]]++;
}
}
int c = 1,t;
//修正名次
for(map<int,int>::reverse_iterator j = m.rbegin();j != m.rend();j++){
t = j->second;
m[j->first] = c;
c = c + t;
}
//输出结果
for(i = 1;i <= n;i++){
// cout<<m[a[i]]<<endl;
printf("%d\n",m[a[i]]);
}
}
/**************************************************************
Problem: 1542
User: admin
Language: C++
Result: Accepted
Time:570 ms
Memory:3924 kb
****************************************************************/