N, M = map(int, input().split())
board = []
newboard = []
newboard_str = ''
check_chess1 = list("WBWBWBWBBWBWBWBWWBWBWBWBBWBWBWBWWBWBWBWBBWBWBWBWWBWBWBWBBWBWBWBW")
check_chess2 = list("BWBWBWBWWBWBWBWBBWBWBWBWWBWBWBWBBWBWBWBWWBWBWBWBBWBWBWBWWBWBWBWB")
## 1
for i in range(N):
board.append(input())
## 2
for i in range(M-7):
for j in range(N-7):
for k in range(j, j+8):
newboard_str = newboard_str + board[k][i:i+8]
newboard.append(newboard_str)
newboard_str = ''
## 3
result = []
for i in newboard:
min = 0
i = list(i)
for j in range(64):
if(check_chess1[j] != i[j]):
min += 1
result.append(min)
min = 0
for j in range(64):
if(check_chess2[j] != i[j]):
min += 1
result.append(min)
## 4
result.sort()
print(result[0])
이렇게 쓰레기 코드를 짜도되는걸까 싶다..
그래도 덩치는 끝까지 못풀었지만 이건 끝까지 풀었다.
체감상 덩치가 더어려웠는데 문제 접근을 잘못해서 그런듯 ..