output_description: If a good string does not exist, print `-1`; if it exists, print the length of
  the shortest such string.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N M
      S
      T
attempt: import fractions
  n,m=map(int,input().split())
  s=list(input())
  t=list(input())
  if s[0]!=t[0]:
      print(-1)
      exit()
  p=n*m//fractions.gcd(n,m)
  sf=p//n
  tf=p//m
  for i in range(1,p):
      if i%n==i%m==0:
          if s[i//m]!=l[i//n]:
          print(-1)
          exit()
  print(p)
  
problem_description: Statement
  
  You are given a string S of length N and another string T of length M. These
  strings consist of lowercase English letters.
  
  A string X is called a **good string** when the following conditions are all
  met:
  
    * Let L be the length of X. L is divisible by both N and M.
    * Concatenating the 1-st, (\frac{L}{N}+1)-th, (2 \times \frac{L}{N}+1)-th, ..., ((N-1)\times\frac{L}{N}+1)-th characters of X, without changing the order, results in S.
    * Concatenating the 1-st, (\frac{L}{M}+1)-th, (2 \times \frac{L}{M}+1)-th, ..., ((M-1)\times\frac{L}{M}+1)-th characters of X, without changing the order, results in T.
  
  Determine if there exists a good string. If it exists, find the length of the
  shortest such string.
samples: [{"input": "3 2\n    acp\n    ae", "output": "6\n    \n\nFor example, the string `accept` is a good string. There is no good string\nshorter than this, so the answer is 6.\n\n* * *"}, {"input": "6 3\n    abcdef\n    abc", "output": "-1\n    \n\n* * *"}, {"input": "15 9\n    dnsusrayukuaiia\n    dujrunuma", "output": "45"}]