import sys sys.setrecursionlimit(10**6) from collections import defaultdict def dfs(v, t, f, used): if v == t: return f used[v] = True for nn, cap in edges[v].items(): if not used[nn] and cap > 0: d = dfs(nn, t, min(f, cap), used) if d > 0: edges[v][nn] -= d edges[nn][v] += d return d return 0 def max_flow(s, t): flow = 0 while True: used = [False] * (N*M+2) f = dfs(s, t, 10**18, used) if f == 0: return flow flow += f N, M = map(int, input().split()) S = [input() for _ in range(N)] edges = defaultdict(dict) wc, bc = 0, 0 for i in range(N): for j in range(M): if S[i][j] == 'w': wc += 1 edges[0][M*i+j+1] = 1 edges[M*i+j+1][0] = 0 for ni, nj in [(i-1, j), (i+1, j), (i, j-1), (i, j+1)]: if 0<=ni