#arc125a. [arc125_a]Dial Up

[arc125_a]Dial Up

問題文

すぬけくんは,0011 からなる長さ NN の整数列 a=(a1,a2,cdots,aN)a=(a_1,a_2,\\cdots,a_N) と,空の整数列 bb を持っています. aa の初期状態は入力で与えられ,ai=Sia_i=S_i です.

すぬけくんは,以下の 33 種類の操作を好きな順番で好きな回数行えます.

  • aa を右シフトする.つまり,aa(aN,a1,a2,cdots,aN1)(a_N,a_1,a_2,\\cdots,a_{N-1}) で置き換える.

  • aa を左シフトする.つまり,aa(a2,a3,cdots,aN,a1)(a_2,a_3,\\cdots,a_N,a_1) で置き換える.

  • bb の末尾に現在の a1a_1 の値を追加する.

長さ MM の整数列 T=(T1,T2,cdots,TM)T=(T_1,T_2,\\cdots,T_M) が与えられます. bbTT に一致させることができるか判定し,可能な場合は必要な操作回数の最小値を求めてください.

制約

  • 1leqNleq2times1051 \\leq N \\leq 2 \\times 10^5
  • 1leqMleq2times1051 \\leq M \\leq 2 \\times 10^5
  • 0leqSileq10 \\leq S_i \\leq 1
  • 0leqTileq10 \\leq T_i \\leq 1
  • 入力される値はすべて整数である

入力

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

NN MM S1S_1 S2S_2 cdots\\cdots SNS_N T1T_1 T2T_2 cdots\\cdots TMT_M

出力

bbTT に一致させることが不可能な場合,-1 を出力せよ. 可能な場合は,必要な操作回数の最小値を出力せよ.


入力例 1

3 4
0 0 1
0 1 1 0

出力例 1

6

以下のように 66 回操作すればよいです.

  • bb の末尾に現在の a1a_1 の値を追加する.b=(0)b=(0) となる.

  • aa を右シフトする.a=(1,0,0)a=(1,0,0) となる.

  • bb の末尾に現在の a1a_1 の値を追加する.b=(0,1)b=(0,1) となる.

  • bb の末尾に現在の a1a_1 の値を追加する.b=(0,1,1)b=(0,1,1) となる.

  • aa を右シフトする.a=(0,1,0)a=(0,1,0) となる.

  • bb の末尾に現在の a1a_1 の値を追加する.b=(0,1,1,0)b=(0,1,1,0) となる.


入力例 2

1 1
0
1

出力例 2

-1