#include <bits/stdc++.h>

using namespace std;

const int N = 1e5 + 10;

int n, m;
char s[N], t[N];

int main()
{
	scanf("%d%d", &n, &m);
	scanf("%s", s + 1);
	scanf("%s", t + 1);
	if(s[1] != t[1])
	{
		puts("-1");
		return 0;
	}
	if(n % m == 0)
	{
		int flag = 1;
		for(int i = 1; i <= m; i++)
			if(t[i] != s[1ll * (i - 1) * n / m + 1])flag = 0;
		if(!flag)
		{
			puts("-1");
		}
		else printf("%d\n", n);
		return 0;
	}
	if(m % n == 0)
	{
		int flag = 1;
		for(int i = 1; i <= m; i++)
			if(s[i] != t[1ll * (i - 1) * n / m + 1])flag = 0;
		if(!flag)
		{
			puts("-1");
		}
		else printf("%d\n", m);
		return 0;
	}
	printf("%lld\n", 1ll * n * m / __gcd(n, m));
}