N,M=map(int,input().split()) l=[] for i in range(N): S=[list(input()) for i in range(M)] l.append(S) def to_base(n,base,leng): digit='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' if n==0: return '0'*leng res=[] while n: res.append(digit[n%base]) n//=base res+=['0']*(max(0,leng-len(res))) return ''.join(res[::-1]) #左90°回転 def rot(S): return [list(r) for r in zip(*S)][::-1] ans=10**18 for n in range(4**N): cur=[[False]*M for i in range(M)] b=to_base(n,4,N) for j in range(N): G=l[j] for _ in range(int(b[j])): G=rot(G) for r in range(M): for c in range(M): if G[r][c]=='#': cur[r][c]=True ans=min(ans,sum(sum(v) for v in cur)) print(ans)