H, W = map(int, input().split()) S = [list(input()) for _ in range(H)] T = [list(input()) for _ in range(H)] first, second = False, False R = [t[:] for t in T[:]] for i in range(H): for j in range(W): if R[i][j] == "#": R[i][j] = "." else: R[i][j] = "#" if S == R: first = True R = [[""]*W for _ in range(H)] for i in range(H): for j in range(W): if T[i][j] == "#": s = "." else: s = "#" R[-(i+1)][-(j+1)] = s if S == R: second = True if not first and not second: exit(print(-1)) ans = 0 P = 1 for i in range(100): p = P*((2**i-1)/2**i) if i%2 == 0 and first: ans += (i+1)*p P -= p elif i%2 == 1 and second: ans += (i+1)*p P -= p print(ans)