from copy import deepcopy from itertools import product def rotate(grid): return [*zip(*grid[::-1])] N, M = [int(s) for s in input().split()] grids = [] for _ in range(N): grid = [[*input()] for _ in range(M)] grids.append(grid) rotates = [] for i in range(4): G = deepcopy(grids) for _ in range(i): new_grids = [] for g in G: new_grids.append(rotate(g)) G = new_grids rotates.append(G) ans = M**2 for indexes in product(range(4), repeat=N): count = 0 for i in range(M): for j in range(M): for k in range(N): if rotates[indexes[k]][k][i][j] == "#": count += 1 break ans = min(ans, count) print(ans)