홍수

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

문제

비트니아의 수도 비트버그는 산으로 둘러싸인 계곡에 자리 잡은 아름다운 도시입니다. 며칠 동안 큰비가 내려 도시 전체가 물에 잠겼고, 비타사르 왕은 신하들에게 도시의 물을 빼내라고 명령했습니다. 계획은 펌프 여러 대를 물에 잠긴 땅에 설치해 비트버그를 말리는 것입니다. 여러분이 할 일은 도시 전체의 물을 빼내는 데 충분한 펌프의 최소 개수를 구하는 것입니다.

지역의 지도가 m×nm \times n 크기의 단위 정사각형 격자로 주어집니다. 각 칸에는 해발 기준 지면 높이와 그 칸이 비트버그에 속하는지 여부가 기록되어 있습니다. 지역 전체가 물에 잠겨 있습니다. 훨씬 높은 산으로 둘러싸여 있어 물이 지도 밖으로 흘러 나갈 수는 없습니다. 비트버그에 속하지 않는 칸은 물을 뺄 필요가 없습니다.

펌프는 지도의 어느 칸에나 놓을 수 있습니다. 펌프는 자신이 놓인 칸이 완전히 마를 때까지 계속 작동합니다. 연결된 물의 수위가 같아진다는 원리에 따라, 한 칸의 물을 빼면 그 칸으로 물이 흘러 내려올 수 있는 모든 칸의 수위도 함께 낮아지거나 완전히 마릅니다. 물은 변을 맞대고 있는 두 칸 사이에서만 이동할 수 있으며 (더 정확히는, 두 칸의 높이가 다를 수 있으므로 수평면에 투영한 모양이 변을 맞대고 있는 두 칸 사이에서만), 물은 항상 낮은 쪽으로만 흐릅니다.

표준 입력에서 지도를 읽어, 비트버그 전체의 물을 빼는 데 필요한 펌프의 최소 개수를 구해 표준 출력에 적는 프로그램을 작성하세요.

입력

첫째 줄에 두 정수 mmnn이 공백 하나로 구분되어 주어집니다 (1m,n10001 \le m, n \le 1000).

다음 mm개의 줄에는 격자의 각 행이 주어집니다. (i+1)(i+1)번째 줄에는 정수 nnxi,1,xi,2,,xi,nx_{i,1}, x_{i,2}, \ldots, x_{i,n}이 공백 하나로 구분되어 주어집니다 (1000xi,j1000-1000 \le x_{i,j} \le 1000, xi,j0x_{i,j} \ne 0). xi,jx_{i,j}ii번째 행의 jj번째 칸을 나타내며, 그 칸의 해발 지면 높이는 xi,j|x_{i,j}|입니다. xi,j>0x_{i,j} > 0이면 그 칸은 비트버그에 속하고, xi,j<0x_{i,j} < 0이면 도시 밖에 있습니다. 비트버그는 연결되어 있지 않아도 되며, 도시는 여러 개의 떨어진 조각으로 이루어질 수 있습니다.

출력

비트버그 전체의 물을 빼는 데 필요한 펌프의 최소 개수를 정수 하나로 출력하세요.

힌트

그림

그림은 비트버그 지역과 펌프 두 대를 놓는 한 가지 올바른 방법을 보여 줍니다.