def rotateR(A): return list(map(list, zip(*A[::-1]))) INF = 1<<60 N, M = map(int, input().split()) S = [] for _ in range(N): S.append([list(input()) for _ in range(M)]) def func(idx, F): if idx == N: return sum(sum(f) for f in F) ans = INF for _ in range(4): NF = [f[:] for f in F] for i in range(M): for j in range(M): if S[idx][i][j] == "#": NF[i][j] = True ans = min(ans, func(idx+1, NF)) S[idx] = rotateR(S[idx]) return ans print(func(0, [[False]*M for _ in range(M)]))