from collections import deque
n = int(input())
grid = [list(input()) for _ in range(n)]
grid_rg = [[('R' if c == 'G' else c) for c in row] for row in grid]
def bfs(i, j, grid, color):
queue = deque()
queue.append((i,j))
visited[i][j] = True
cnt = 0
while queue:
x, y = queue.popleft()
for dx, dy in [(-1, 0), (1, 0), (0, -1), (0, 1)]:
nx, ny = x + dx, y + dy
if 0 <= nx < n and 0 <= ny < n and not visited[nx][ny] and grid[nx][ny] == color:
visited[nx][ny] = True
queue.append((nx, ny))
cnt += 1
return cnt
cnt1 = 0
visited = [[False] * n for _ in range(n)]
for i in range(n):
for j in range(n):
if not visited[i][j]:
bfs(i, j, grid, grid[i][j])
cnt1 += 1
cnt2 = 0
visited = [[False] * n for _ in range(n)]
for i in range(n):
for j in range(n):
if not visited[i][j]:
bfs(i, j, grid_rg, grid_rg[i][j])
cnt2 += 1
print(f"{cnt1} {cnt2}")
PREVIOUS[백준] 색종이 만들기