#AGC028A. [AGC028A] Two Abbreviations

[AGC028A] Two Abbreviations

配点 : 300300

問題文

長さ NN の文字列 SS と長さ MM の文字列 TT が与えられます。 どちらの文字列も、英小文字からなります。

文字列 XX は、以下の条件をすべて満たす時、よい文字列と呼ばれます。

  • XX の長さを LL とした時、LLNNMM のどちらでも割り切れる
  • XX1, LN+1, 2×LN+1, ... (N1)×LN+11,\ \frac{L}{N}+1,\ 2 \times \frac{L}{N}+1,\ ...\ (N-1)\times\frac{L}{N}+1 番目の文字を並べ替えることなく連結すると SS になる
  • XX1, LM+1, 2×LM+1, ... (M1)×LM+11,\ \frac{L}{M}+1,\ 2 \times \frac{L}{M}+1,\ ...\ (M-1)\times\frac{L}{M}+1 番目の文字を並べ替えることなく連結すると TT になる

よい文字列が存在するか判定し、存在するならば、その中で最短のものの長さを求めてください。

制約

  • 1N,M1051 \leq N,M \leq 10^5
  • SS, TT は英小文字からなる。
  • S=N|S|=N
  • T=M|T|=M

入力

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

NN MM

SS

TT

出力

よい文字列が存在しないならば、-1 と出力せよ。 存在するならば、その中で最短のものの長さを出力せよ。

Sample Input 1

3 2
acp
ae

Sample Output 1

6

例えば、accept という文字列はよい文字列です。 これより短いよい文字列は存在しないので、答えは 66 です。

Sample Input 2

6 3
abcdef
abc

Sample Output 2

-1

Sample Input 3

15 9
dnsusrayukuaiia
dujrunuma

Sample Output 3

45