해전 (Sea Battle)

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

정상회담 기간에는 군과 경찰의 움직임이 매우 분주해집니다. 경찰은 프라하 거리를 순찰하고, 군은 주요 건물을 지키며, 체코 영공은 미국 F-16 전투기로 가득 찹니다. 게다가 블타바 강변을 지키기 위해 함정과 순양함까지 파견됩니다. 그런데 대규모 해전을 지휘할 수 있는 함장이 체코 해군에는 몇 명 없었기에, 새로운 제독을 양성하기로 했습니다. 그 훌륭한 훈련 교재로, 잘 알려진 보드 게임 해전(Sea Battle) 을 선택했습니다.

이 게임에서는 미리 정해진 개수와 모양의 배들을 정사각형 판 위에 놓되, 어떤 두 배도 모서리(대각선)로조차 서로 닿지 않도록 배치해야 합니다. 이 문제에서는 직사각형 모양의 배만 고려합니다. 크기와 개수를 알 수 없는 여러 직사각형 배가 직사각형 판 위에 놓여 있으며, 모든 배는 해시 문자 # 로 빈틈없이 채워진 직사각형입니다. 판에 놓인 배의 총 개수를 세는 프로그램을 작성하세요.

입력

입력은 여러 개의 시나리오로 이루어집니다. 각 시나리오는 공백 하나로 구분된 두 정수 $R$ 과 $C$ 로 시작하며, $1 \le R, C \le 1000$ 입니다. 이 두 수는 게임 판의 행과 열의 개수를 의미합니다.

이어서 $R$ 개의 줄이 주어지고, 각 줄에는 $C$ 개의 문자가 있습니다. 각 문자는 해시(#) 또는 점(.) 이며, 해시는 배를, 점은 물을 나타냅니다.

그다음 줄부터 다음 시나리오가 이어집니다. 입력의 끝에서는 판의 크기 대신 두 개의 0(0 0)이 담긴 줄이 주어집니다.

출력

각 시나리오마다 한 줄을 출력합니다. 배들이 올바르게 놓여 있다면(즉, 서로 모서리로도 닿지 않는 직사각형들만 존재한다면) There are S ships. 를 출력하며, 여기서 $S$ 는 배의 개수입니다.

그렇지 않다면 Bad placement. 를 출력합니다.