長さ $M$ の小文字の英字からなる $N$ 個の文字列 $S_1, \dots, S_N$ が与えられます。 最初、$X = S_1$ とし、$N - 1$ 回の操作を行います。 $i$ 番目の操作では、$X$ と $S_{i+1}$ をこの順で連結してできる文字列を $Y$ とします。次に、$Y$ の長さ $M$ の連続する部分文字列を任意に選び、$X$ をその部分文字列で置き換えます。 最終的な $X$ としてあり得る辞書順最小の文字列を出力してください。
入力
入力は以下の形式で与えられます。
$N$ $M$ $S_1$ $S_2$ $\vdots$ $S_N$
制約:
- $2 \le N \le 2000$
- $1 \le M \le 2000$
- $S_i$ は長さ $M$ の小文字の英字からなる文字列である。
出力
答えを出力してください。
入出力例
入力 1
2 3 cat cut
出力 1
atc
注記
最初の例では、最初 $X = \text{cat}$ です。 1回目の操作では、$Y = \text{catcut}$ となります。2文字目から4文字目までの連続する部分文字列を選ぶと、$X = \text{atc}$ となり、これが辞書順最小となります。
入力 2
2 1 a b
出力 2
a
入力 3
3 8 jastaway tatesoto soryuusi
出力 3
asoryuus