문제

N개의 수X1,X2,…,XN이 주어집니다.
이 수들을 좌표압축하여 X′1,X′2,…,X′N로 바꾸어 출력하는 것이 목적입니다.


X′i는 X 내부에서 Xi 보다 작은 수의 종류 가짓수로 정의합니다.

입력

첫 줄에 N이 주어집니다(N≤1,000,000) 둘째 줄에 X1, X2, …, XN가 공백을 이에 고 주어집니다. Xi는 절대값이 10억 이하인 정수입니다.

출력

첫 줄에 좌표압축한 결과 X′1,X′2,…,X′N를 공백을 사이에 두고 출력합니다.

예제 1 입력

5
2 4 -10 4 -9

예제 1 출력

2 3 0 3 1

예제 2 입력

6
1000 999 1000 999 1000 999

예제 2 출력

1 0 1 0 1 0

Source

n = int(input())
arr = list(map(int, input().split()))

tmp = arr
tmp = set(tmp)
tmp = list(tmp)
tmp.sort()

dic = {}
for i in range(len(tmp)):
    if tmp[i] not in dic:
        dic[tmp[i]] = i

for i in range(n):
    arr[i] = dic[arr[i]]

print(*arr)