#arc050d. [arc050_d]Suffix Concat

[arc050_d]Suffix Concat

問題文

長さ NN の文字列 SS が与えられます。各 ii (1iN1≦i≦N) について、SSii 文字目から NN 文字目までの部分文字列を SiS_i と呼ぶことにします。

S1S_1S2S_2......SNS_N を好きな順番で連結して得られる文字列のうち、辞書順で最小のものを求めてください。

制約

  • 1N1051≦N≦10^5
  • SS の長さは NN である。
  • SS は英小文字のみからなる。

入力

入力は以下の形式で標準入力から与えられる。

NN SS

出力

NN 行出力せよ。ii 行目には pip_i を出力せよ。

ただし、(p1p2...pN)(p_1,p_2,...,p_N) は、11 から NN までの順列であって、次の条件を満たすものである。

  • Sp1S_{p_1}Sp2S_{p_2}......SpNS_{p_N} をこの順番で連結して得られる文字列が、辞書順で最小である。

(p1p2...pN)(p_1,p_2,...,p_N) が複数通りある場合、どれを出力してもよい。


入力例1


3
arc

出力例1


1
3
2

arccrc の順番で連結して得られる arccrc が、辞書順で最小です。


入力例2


2
zz

出力例2


1
2

他には、2211 の順番で出力してもよいです。


入力例3


5
abaab

出力例3


3
1
4
2
5