#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <vector>
#include <queue>
#include <map>
#include <stack>
using namespace std;
typedef long long ll;
struct sss
{
    int val;   //原来的数值
    int order; //原来的下表
}a[100005];
int b[100001]; //b数组储存离散化后,数据为1-N,下表也是1-N的数据
bool cmp(sss x, sss y)
{
    return x.val < y.val;
}
int main()
{
    int n;
    cin >> n;
    for (int i=1;i<=n;i++)
    {
        cin >> a[i].val;
        a[i].order = i;
    }
    sort(a+1, a+1+n, cmp); //对结构体按照a数组排序
    //如果没有相同的元素
//    for (int i=1;i<=n;i++)
//    {
//        b[a[i].order] = i;
//    }

    //如果有相同的元素
//    b[a[1].order]=1;
//    int cnt = 1;
//    for (int i=2;i<=n;i++)
//    {
//        if(a[i].val == a[i-1].val) b[a[i].order] = cnt;
//        else b[a[i].order] = ++cnt;
//    }
//    for (int i=1;i<=n;i++)
//    {
//        cout << b[i] << " ";
//    }
//    cout << endl;
    return 0;
}