AT_ttpc2019_k サーキュレーション
Description
[problemUrl]: https://atcoder.jp/contests/ttpc2019/tasks/ttpc2019_k
長さ $ N $ の `0` と `1` からなる文字列 $ S,\ T $ が与えられます。
以下の操作を考えます。
- $ 1\ \leq\ x\ \leq\ N $ となる整数 $ x $ を選び、文字列 $ S\ =\ S_1\ldots\ S_N $ を $ S_1\ldots\ S_x $ と $ S_{x+1}\ldots\ S_N $ に分け、それぞれ巡回右シフトをしてくっつける
ただし、文字列 $ U\ =\ U_1\ldots\ U_M $ の巡回右シフトとは $ U_1\ldots\ U_{M-1}U_M $ を $ U_MU_1\ldots\ U_{M-1} $ に変更することを意味します。また、$ x=N $ の時は文字列 $ S $ 全体を巡回右シフトします。 例えば、文字列 $ S=01001 $ に対して $ x=3 $ として操作を行うと、文字列はまず $ 010 $ と $ 01 $ にわけられ、それぞれを巡回右シフトすると $ 001 $ と $ 10 $ になるため、操作の結果として得られる文字列は $ 00110 $ となります。
この操作を文字列 $ S $ に対して任意回数行うことで、文字列 $ T $ と一致させることが出来るか判定してください。 出来ない場合は `MuriyarokonnNaN` を 1 行に出力、 出来る場合は最小の操作回数を 1 行に出力してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ S $ $ T $
Output Format
文字列 $ S $ に対して操作を任意回数行うことで文字列 $ T $ と一致させることが出来る場合は最小の操作回数を、出来ない場合は `MuriyarokonnNaN` を、それぞれ 1 行に出力せよ。
Explanation/Hint
### 制約
- $ N $ は $ 1\ \leq\ N\ \leq\ 10^{5} $ を満たす整数
- $ S $ と $ T $ は `0` と `1` からなる文字列
- $ \lvert\ S\ \rvert\ =\ \lvert\ T\ \rvert\ =\ N $
- $ S $ に含まれる `0` の数と $ T $ に含まれる `0` の数は等しい
- $ S $ に含まれる `1` の数と $ T $ に含まれる `1` の数は等しい
### Sample Explanation 1
以下のような順番で操作を行うことで、文字列 $ S $ を文字列 $ T $ に一致させることが出来ます。 - $ x=1 $ として操作を行う - $ x=5 $ として操作を行う - $ x=6 $ として操作を行う この時、文字列 $ S $ は操作によって $ 010101\ \to\ 011010\ \to\ 101100\ \to\ 010110 $ と変化します。
### Sample Explanation 2
操作をしなくてもすでに一致しています。