#include<bits/stdc++.h>
using namespace std;
int gcd(int a,int b) {
int t;
while(b>0) {
t=a%b;
a=b;
b=t;
}
return a;
}
signed main(){
int n,m,gl;
string s,t;
cin>>n>>m>>s>>t;
gl=(n/gcd(n,m))*m;
vector<char> gs(gl,0);
for(int i=0;i<n;i++){
gs[gl/n*i]=s[i];
}
for(int i=0;i<m;i++){
if(gs[gl/m*i]&&gs[gl/m*i]!=t[i]){
cout<<-1<<endl;
return 0;
}
}
cout<<gl<<endl;
return 0;
}
s,t为字符串,n,m是他们的长度,求有没有数据能把他卡 RE