def rot90(A): # 時計回りに90度回転 return list(zip(*(A[::-1]))) H, W = map(int, input().split()) S = [] for i in range(H): S.append(input()) T = [] for i in range(H): T.append(input()) f = [0, 0] flag = 1 for i in range(H): for j in range(W): if S[i][j] == T[i][j] == "#": flag = 0 f[0] = flag T = rot90(rot90(T)) flag = 1 for i in range(H): for j in range(W): if S[i][j] == T[i][j] == "#": flag = 0 f[1] = flag if sum(f) == 0: print(-1) exit() ans = 0 p = 1 for i in range(1000): if f[i%2]: ans += p * (1 - (1/2)**i) * (i + 1) p *= (1/2)**i print(ans)