時間制限 : sec, メモリ制限 : KB
English / Japanese  

最小のMAW

文字列$S$の連続部分文字列とは、$S$の先頭と末尾からそれぞれ長さ0以上の連続した文字列を削除したもののことです(ただし、$S$の文字をすべて削除したものは除きます)。たとえば、文字列abcの連続部分文字列は、a, ab, abc, b, bc, c の6個です。

文字列$S$と$T$があるとき、$T$が以下の条件を満たすなら、$T$は$S$の最小欠失語(minimal absent word, これ以降はMAWと書く)といいます。

  • $T$の長さは2以上。
  • $T$はSの連続部分文字列ではない。
  • $T$の連続部分文字列で$T$でないものはすべて、$S$の連続部分文字列である。

たとえば、文字列$S$がaabbのとき、$S$のMAWは文字列aaa, ba, bbbです。

文字列が与えられる。その文字列のMAWで、辞書式順序(英和辞書で単語が並んでいる順番)で最小の文字列を求めるプログラムを作成せよ。

入力

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

$N$
$str$

1行目に文字列の長さ$N$ ($3 \leq N \leq 400,000$)が与えられる。2行目に英小文字からなる長さ$N$の文字列が与えられる。

出力

辞書式順序で最小のMAWを1行に出力する。

入出力例

入力例1

4
aabb

出力例1

aaa

入力例2

4
tree

出力例2

eee

Note

Algorithm