산등성이
시간 제한1초메모리 제한1024 MB
각 칸보다 낮은 인접 칸의 개수가 주어진 n×m 격자에서 왼쪽 위 칸의 높이가 가질 수 있는 최솟값과 최댓값을 구합니다.
문제
Torunn은 격자로 나뉜 산악 주거 지역에 살고 있다. 격자의 각 칸에는 택지가 하나씩 있다. Torunn은 가장 왼쪽 위 칸에 살고 있다. 안타깝게도 아주 골치 아픈 세입자가 최근에 이사 와서, Torunn은 집을 팔고 다른 곳으로 이사하기로 했다. 그 전에 먼저 집의 가치가 얼마인지 알아내야 한다.
격자의 각 칸에는 높이가 있다. 모든 높이는 서로 다르므로, 단순하게 생각해서 높이는 이라고 가정한다. 부동산 시장에서는 높은 택지일수록 가치가 높으므로, Torunn은 자신의 택지 높이를 알고 싶어 한다. 그래서 격자의 모든 칸을 돌아다니며 인접한 칸 중 자신보다 낮은 칸이 몇 개인지 셌다. 두 칸이 변을 공유하면 인접한 칸이다. 따라서 주거 지역 가장자리에 있지 않은 칸은 인접한 칸이 4개다.
Torunn이 모은 정보가 주어졌을 때, 왼쪽 위 칸 택지의 높이가 가질 수 있는 최솟값과 최댓값을 구하는 프로그램을 작성하라.
입력
첫 번째 줄에 격자의 행 수와 열 수를 나타내는 두 정수 과 ()이 주어진다.
다음 개 줄에는 각각 길이가 인 문자열이 주어진다. 이 격자는 Torunn이 모은 정보이며, 각 숫자는 그 숫자가 적힌 칸보다 높이가 낮은 인접 칸의 개수이다. 모은 정보가 올바르도록 높이 을 칸에 배정하는 방법이 적어도 하나 있음이 보장된다. 모은 값은 항상 에서 사이라는 점에 유의하라.
출력
왼쪽 위 칸 택지의 높이가 가질 수 있는 최솟값과 최댓값을 공백으로 구분하여 두 정수로 출력하라.
힌트

첫 번째 입력 예시와 일치하는 높이 배정 방법 두 가지이다.