#agc007f. [agc007_f]Shik and Copying String

[agc007_f]Shik and Copying String

問題文

#nck { width: 30px; height: auto; }

シックの仕事はコピー取りです。ある日、シックは上司から英小文字からなる長さ NN の文字列 S0S_0 を受け取りました(この日を 00 日目とします)。これ以降、ii 日目の仕事は、文字列 Si1S_{i-1}SiS_i にコピーすることです。以下、SiS_ijj 番目の文字を S_i\[j\] と表します。

シックはまだこの仕事に慣れていません。毎日、文字列を先頭の文字から順に書き写していくのですが、正しい文字の代わりに誤って直前に書いた文字と同じ文字を書いてしまうことがあります。すなわち、S_i\[j\]S_{i-1}\[j\] または S_{i}\[j-1\] のどちらかと等しくなります。(ただし、文字列の先頭の文字を書き間違えることはありません。すなわち、S_i\[1\] は必ず S_{i-1}\[1\] と等しくなります。)

二つの文字列 S0S_0TT が与えられます。SiS_iTT と等しくなる可能性があるような最小の整数 ii を求めてください。もしそのような ii が存在しなければ、代わりに -1 と答えてください。

制約

  • 1leqNleq1,000,0001 \\leq N \\leq 1,000,000
  • S0S_0TT の長さはともに NN である。
  • S0S_0TT はともに英小文字のみからなる。

入力

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

NN S0S_0 TT

出力

SiS_iTT と等しくなる可能性のあるような ii が存在するならば、そのような ii のうち最小のものを出力せよ。そのような ii が存在しなければ、代わりに -1 と出力せよ。


入力例 1

5
abcde
aaacc

出力例 1

2

S0S_0 = abcde, S1S_1 = aaccc, S2S_2 = aaacc のように、S2=TS_2 = T となる可能性が存在します。


入力例 2

5
abcde
abcde

出力例 2

0

入力例 3

4
acaa
aaca

出力例 3

2

入力例 4

5
abcde
bbbbb

出力例 4

-1