2021/05/08
import sys
N, M = map(int, sys.stdin.readline().split())
A = []
B = []
ans = 0
for _ in range(N):
tmp = sys.stdin.readline().strip()
l = []
for i in tmp:
l.append(ord(i) - 48)
A.append(l)
for _ in range(N):
tmp = sys.stdin.readline().strip()
l = []
for i in tmp:
l.append(ord(i) - 48)
B.append(l)
def flip(y, x):
for i in range(3):
for j in range(3):
if (A[y + i][x + j]):
A[y + i][x + j] = 0
else:
A[y + i][x + j] = 1
def check(y, x):
for i in range(N):
for j in range(M):
if (A[y + i][x + j] != B[y + i][x + j]):
return 0
return 1
for i in range(N - 2):
for j in range(M - 2):
if (A[i][j] != B[i][j]):
flip(i, j)
ans+=1
if (check(0,0)):
print(ans)
else:
print(-1)