#include<iostream>
#include<algorithm>
bool cmp(int x,int y)
{
return x>y;//可以简单理解为:>降序,<升序;
}
using namespace std;
int main()
{
int a[100001],b[100001],n;
cin>>n;
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
b[i]=a[i];
}
sort(a,a+n,cmp);//倒序排序
//for(int i=0;i<n;i++) cout<<a[i]<<endl;
for(int i=0;i<n;i++){
int left=0,right=n-1;
int mid=(left+right)/2;
while(left<=right){
if(b[i]>a[mid]) right=mid;
if(b[i]<a[mid]) left=mid;
if(b[i]==a[mid]){
if(b[i]==a[mid-1]){
mid--;
continue;
}//多个相同成绩取第一个成绩为排名,用continue继续循环,
//不能在下面执行 mid=(left+right)/2;否则mid--无效了;
else break;
}
mid=(left+right)/2;
if(b[i]<a[mid]&&mid==n-2){
mid++;
break;//最后一名的下标永远在倒数第二名,(3+4)/2=3;要特殊处理;
}
//cout<<left<<' '<<right<<endl;
}
printf("%d\n",mid+1);
}
}