#iroha2019day2c. [iroha2019_day2_c]陽気な妖姫

[iroha2019_day2_c]陽気な妖姫

問題文

いつも明るいいろはちゃんには妖怪の友達が NN 人います。 i(1leqileqN)i(1 \\leq i \\leq N) 人目の身長は HiH_i です。

友達が増えすぎたいろはちゃんは、友達がどんなひとだったか忘れないように、その友達の名前と一緒にどれくらいの身長だったかも覚えようと思っています。
しかし、いろはちゃんの友達は妖怪なので、身長がとても高いひともいれば、とても低い人もいます。 そのため、いろはちゃんは友達の身長の大小関係を維持したまま、出来るだけ小さい数に置き換えて覚えておきたいです。
具体的には、任意の整数の組 (i,j)(i, j) について HileqHjLeftrightarrowXileqXjH_i \\leq H_j \\Leftrightarrow X_i \\leq X_j を満たすような正整数の列 X1,X2,cdots,XNX_1,X_2,\\cdots,X_N であって、その最大値が最小となるようなものを構築したいです。

いろはちゃんの代わりに NN 人の友達の身長を置き換えてあげてください。

制約

  • 入力はすべて整数
  • 1leqNleq1051 \\leq N \\leq 10^5
  • 1leqHileq1091 \\leq H_i \\leq 10^9

入力

以下の形式で与えられます。

NN H1H_1 H2H_2 vdots\\vdots HNH_N

出力

11人目から NN 人目まで、身長を置き換えた後の正整数を NN 行で出力してください。


入力例 1


3
10
20
30

出力例 1


1
2
3

入力例 2


5
10
20
10
30
55

出力例 2


1
2
1
3
4

入力例 3


2
10000
10000

出力例 3


1
1

解説

解説