✅ 정답 공개
from collections import deque
n, m = map(int, input().split())
grid = [list(map(int, input().split())) for _ in range(n)]
visited = [[False]*m for _ in range(n)]
count = 0
for r in range(n):
for c in range(m):
if grid[r][c] == 1 and not visited[r][c]:
count += 1
q = deque([(r, c)])
visited[r][c] = True
while q:
cr, cc = q.popleft()
for dr, dc in [(-1,0),(1,0),(0,-1),(0,1)]:
nr, nc = cr+dr, cc+dc
if 0<=nr<n and 0<=nc<m and not visited[nr][nc] and grid[nr][nc]==1:
visited[nr][nc] = True
q.append((nr, nc))
print(count)