Sheba의 아메바
면접 대비시간 제한2초메모리 제한512 MB
고리가 겹치거나 맞닿지 않는 흑백 픽셀 패턴에서 닫힌 고리의 개수를 셉니다. 고리는 서로 다른 고리 안에 중첩될 수 있습니다.
문제
성공적인 Kickstarter 캠페인 덕분에 Sheba Arriba는 우편 주문 생물학 용품 회사를 세울 만큼의 자금을 모았다. "Sheba's Amoebas"는 작은 단세포 생물 군체가 이미 들어 있는 페트리 접시를 배송할 수 있다. 그런데 Sheba는 회사에서 보내는 아메바의 수를 확인할 방법이 필요하다. 각 접시마다 미리 처리된 흑백 이미지가 있는데, 이 이미지에서 각 아메바는 검은 픽셀의 단순 닫힌 고리로 나타난다. (고리는 검은 픽셀의 최소 집합으로, 집합 안의 각 픽셀이 정확히 두 개의 다른 픽셀과 인접한 것이다. 인접하다는 것은 픽셀의 변이나 꼭짓점을 공유한다는 뜻이다.) 이미지의 모든 검은 픽셀은 어떤 고리에 속한다.
Sheba는 직사각형 흑백 픽셀 배열에서 닫힌 고리의 수를 세는 프로그램을 원한다. 이미지의 두 닫힌 고리는 서로 닿거나 겹치지 않는다. 이웃을 둘러싸고 삼키는 것으로 알려진 특히 고약한 식인 아메바 종이 있어서, 아메바 안에 아메바가 있을 수 있다. 예를 들어, 그림 G.1의 각 이미지에는 아메바가 네 마리 있다.

그림 G.1: 아메바가 네 마리씩 있는 두 개의 페트리 접시.
입력
입력의 첫 줄에는 정수 m과 n이 주어진다. (1 ≤ m, n ≤ 100) 다음 m개의 줄에는 각각 n개의 문자가 주어진다. '#'은 검은 픽셀, '.'은 흰 픽셀을 나타낸다. 모든 검은 픽셀에 대해 여덟 개의 이웃 중 정확히 두 개가 검은색이다.
출력
입력에 있는 고리의 수를 나타내는 정수 하나를 출력한다.