def main(): import sys input = lambda : sys.stdin.readline().rstrip() MI = lambda : map(int, input().split()) INF = 1<<60 H,W = MI() ma = [input() for i in range(H)] fe = [input() for i in range(H)] def check(T, S): for i in range(H): for j in range(W): if T[i][j]==S[i][j]: return False return True fwd=check(ma, fe) rev=check([row[::-1] for row in ma][::-1], fe) if fwd==rev==False: return print(-1) ans=0 fail=1 for i in range(1,10000): ans+=fail*(1-(1/2)**(i-1))*i fail*=(1/2)**(i-1) print(round(ans,9)) from collections import * main()