전쟁은 어느덧 전면전이 시작되었다. 결국 전투는 난전이 되었고, 우리 병사와 적국 병사가 섞여 싸우게 되었다.
그러나 당신의 병사들은 하얀 옷을 입고, 적국의 병사들은 파란옷을 입었기 때문에 서로가 적인지 아군인지는 구분할 수 있다.
문제는, 같은 팀의 병사들은 모이면 모일수록 강해진다는 사실이다.
N명이 뭉쳐있을 때는 N^2의 위력을 낼 수 있다. 과연 지금 난전의 상황에서는 누가 승리할 것인가? 단, 같은 팀의 병사들이 대각선으로만 인접한 경우는 뭉쳐 있다고 보지 않는다.
입력
첫째 줄에는 전쟁터의 가로 크기 N, 세로 크기 M(1 ≤ N, M ≤ 100)이 주어진다. 그 다음 두 번째 줄에서 M+1번째 줄에는 각각 (X, Y)에 있는 병사들의 옷색이 띄어쓰기 없이 주어진다. 모든 자리에는 병사가 한 명 있다. (B는 파랑, W는 흰색이다.)
R, C = map(int, input().split())
board = [[0]*(R+1)]
for i in range(C):
column = [0] + list(input())
board.append(column)
dc = [0, 0, -1, 1]
dr = [-1, 1, 0, 0]
White = 0
Blue = 0
visited = [[0] * (R+1) for _ in range(C+1)]
def dfs(c, r, x):
global cnt
cnt += 1
visited[c][r] = 1
for i in range(4):
new_c = c + dc[i]
new_r = r + dr[i]
if 1 <= new_c <= C and 1 <= new_r <= R:
if board[new_c][new_r] == x and not visited[new_c][new_r]:
dfs(new_c, new_r, x)
for i in range(1, C+1):
for j in range(1, R+1):
if board[i][j] == 'W' and not visited[i][j]:
cnt = 0
dfs(i, j, 'W')
White += cnt ** 2
cnt = 0
for i in range(1, C+1):
for j in range(1, R+1):
if board[i][j] == 'B' and not visited[i][j]:
cnt = 0
dfs(i, j, 'B')
Blue += cnt ** 2
print(White, Blue)