AT_oupc2023_day1_d Han Burger

Description

$ N $ 個の文字あるいは文字列 $ X_1, X_2, \dots, X_N $ をこの順に連結させた文字列を $ X_1 + X_2 + \cdots + X_N $ と表記します。 文字列に対して、バーガー、全バーガー、半バーガーを以下のように定義します。**この定義はE問題と同じです。** - バーガーとは、全バーガーである文字列、および半バーガーである文字列 - 全バーガーとは、あるバーガー $ A $ とある文字 $ c $ に対して、 $ c + A + c $ と書ける文字列、および空文字列 - 半バーガーとは、ある空でないバーガー $ A $ 、 $ B $ に対して、 $ A + B $ と書ける文字列のうち、全バーガーでない文字列 例えば、`abba` や `abbcca` は全バーガー、`aabb` や `abbacc` は半バーガーですが、`abbcbbc` や `ababa` はバーガーではありません。 英小文字からなる文字列 $ S $ に対し、 $ S + T $ が全バーガーとなるような、英小文字からなる文字列 $ T $ が存在するとき、 $ |T| $ が最小である $ T $ のうち辞書順で最小のものを出力してください。そのような $ T $ が存在しないときは `-1` を出力してください。 辞書順とは ? 文字列 $ S = S_1S_2 \cdots S_{|S|} $ が文字列 $ T = T_1T_2 \cdots T_{|T|} $ より **辞書順で小さい** とは、下記の 1. と 2. のどちらかが成り立つことを言います。ここで、 $ |S|, |T| $ はそれぞれ $ S,T $ の長さを表します。 - 1. $ |S| < |T| $ かつ $ S = S_1S_2 \cdots S_{|S|} = T_1T_2 \cdots T_{|S|} $ 。 - 2. ある整数 $ 1 \leq i \leq \min\{|S|, |T|\} $ が存在して、下記の $ 2 $ つがともに成り立つ。 - $ S = S_1S_2 \cdots S_{i-1} = T_1T_2 \cdots T_{i-1} $ - $ S_i $ が $ T_i $ よりアルファベット順で小さい文字である。

Input Format

入力は以下の形式で標準入力から与えられます。 > $ S $

Output Format

答えを $ 1 $ 行で出力してください。

Explanation/Hint

### 小課題 1. ( $ 1 $ 点) $ S $ は `a` と `b` からなり、 $ |S| \leq 10 $ となる文字列 2. ( $ 99 $ 点) 追加の制約はない ### Sample Explanation 1 $ T = $ `aba` とすると、 $ S+T = $ `abccaaba` は全バーガーとなります。 条件を満たす $ T $ は `aba` 以外にも考えられますが、 $ 2 $ 文字以下であるものは存在せず、 $ 3 $ 文字である $ T $ のうち辞書順で最も小さいのは `aba` であるため、`aba` を出力します。 このテストケースは小課題 1 の制約を満たしません。 ### Sample Explanation 2 $ T $ を空文字列にすれば、 $ S+T = $ `abba` は全バーガーとなります。 このテストケースは小課題 1 の制約を満たします。 ### Constraints - $ 1 \leq |S| \leq 200{,}000 $ - $ S $ は英小文字からなる文字列