#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
****************************************************************/