D - Han Burger Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 100

問題文

N 個の文字あるいは文字列 X_1, X_2, \dots, X_N をこの順に連結させた文字列を X_1 + X_2 + \cdots + X_N と表記します。
文字列に対して、バーガー、全バーガー、半バーガーを以下のように定義します。この定義はE問題と同じです。

  • バーガーとは、全バーガーである文字列、および半バーガーである文字列
  • 全バーガーとは、あるバーガー A とある文字 c に対して、c + A + c と書ける文字列、および空文字列
  • 半バーガーとは、ある空でないバーガー AB に対して、A + B と書ける文字列のうち、全バーガーでない文字列

例えば、abbaabbcca は全バーガー、aabbabbacc は半バーガーですが、abbcbbcababa はバーガーではありません。

英小文字からなる文字列 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_iT_i よりアルファベット順で小さい文字である。

制約

  • 1 \leq |S| \leq 200{,}000
  • S は英小文字からなる文字列

小課題

  1. ( 1 点) Sab からなり、|S| \leq 10 となる文字列

  2. ( 99 点) 追加の制約はない


入力

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

S

出力

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


入力例 1

abcca

出力例 1

aba

T = aba とすると、S+T = abccaaba は全バーガーとなります。
条件を満たす Taba 以外にも考えられますが、2 文字以下であるものは存在せず、3 文字である T のうち辞書順で最も小さいのは aba であるため、aba を出力します。

このテストケースは小課題 1 の制約を満たしません。


入力例 2

abba

出力例 2


T を空文字列にすれば、S+T = abba は全バーガーとなります。

このテストケースは小課題 1 の制約を満たします。