N, M = map(int, input().split()) S = [[input() for j in range(M)] for i in range(N)] v = [[(j, k) for j in range(M) for k in range(M) if S[i][j][k] == '#'] for i in range(N)] vt = [[set(v[i]), set(), set(), set()] for i in range(N)] for i in range(N): for t in range(3): for p in vt[i][t]: vt[i][t + 1].add((p[1], M - 1 - p[0])) ans = 10 ** 9 for bit in range(1 << ((N - 1) * 2)): s = set() for i in range(N): t = bit >> (i * 2) & 3 s = s | vt[i][t] ans = min(ans, len(s)) print(ans)