#include<bits/stdc++.h>
using namespace std;
long long n,res[100005];
pair<long long, long long> a[100005];
bool cmp(pair<long long,long long> x, pair<long long,long long> y)
{
return x.first>y.first;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
if (fopen("bxh.inp", "r"))
{
freopen("bxh.inp", "r", stdin);
freopen("bxh.out", "w", stdout);
}
cin >> n;
for (long long i=1; i<=n; i++)
{
cin >> a[i].first;
a[i].second=i;
}
sort (a+1,a+1+n,cmp);
res[a[1].second]=1;
for (long long i=2; i<=n; i++)
{
if(a[i].first!=a[i-1].first)
{
res[a[i].second]=i;
}
else
{
res[a[i].second]=res[a[i-1].second];
}
}
for (long long i=1; i<=n; i++)
{
cout << res[i] << " ";
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKbG9uZyBsb25nIG4scmVzWzEwMDAwNV07CnBhaXI8bG9uZyBsb25nLCBsb25nIGxvbmc+IGFbMTAwMDA1XTsKYm9vbCBjbXAocGFpcjxsb25nIGxvbmcsbG9uZyBsb25nPiB4LCBwYWlyPGxvbmcgbG9uZyxsb25nIGxvbmc+IHkpCnsKICAgIHJldHVybiB4LmZpcnN0PnkuZmlyc3Q7Cn0KaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoMCk7CiAgICBpZiAoZm9wZW4oImJ4aC5pbnAiLCAiciIpKQogICAgewogICAgICAgIGZyZW9wZW4oImJ4aC5pbnAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKCJieGgub3V0IiwgInciLCBzdGRvdXQpOwogICAgfQogICAgY2luID4+IG47CiAgICBmb3IgKGxvbmcgbG9uZyBpPTE7IGk8PW47IGkrKykKICAgIHsKICAgICAgICBjaW4gPj4gYVtpXS5maXJzdDsKICAgICAgICBhW2ldLnNlY29uZD1pOwogICAgfQogICAgc29ydCAoYSsxLGErMStuLGNtcCk7CiAgICByZXNbYVsxXS5zZWNvbmRdPTE7CiAgICBmb3IgKGxvbmcgbG9uZyBpPTI7IGk8PW47IGkrKykKICAgIHsKICAgICAgICBpZihhW2ldLmZpcnN0IT1hW2ktMV0uZmlyc3QpCiAgICAgICAgewogICAgICAgICAgICByZXNbYVtpXS5zZWNvbmRdPWk7ICAKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgcmVzW2FbaV0uc2Vjb25kXT1yZXNbYVtpLTFdLnNlY29uZF07CiAgICAgICAgfQogICAgfQogICAgZm9yIChsb25nIGxvbmcgaT0xOyBpPD1uOyBpKyspCiAgICB7CiAgICAgICAgY291dCA8PCByZXNbaV0gPDwgIiAiOwogICAgfQp9Cg==