누리카베

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

문제

숫자가 적힌 9행 10열 누리카베 퍼즐 격자

누리카베는 일본에서 만들어진 펜슬 퍼즐이다. 직사각형 격자가 주어지고, 각 칸은 섬 칸(흰색)이거나 물 칸(검은색)이다. 섬 칸 중 일부에는 1 이상 9 이하의 숫자가 적혀 있다. 다음 세 조건을 모두 만족하는 판을 올바르게 채운 판이라고 한다.

  • 두 칸이 변을 맞대고 있으면 두 칸은 인접하다. 인접한 섬 칸을 따라 서로 이어지는 섬 칸의 모임을 하나의 섬이라고 한다. 모든 섬에는 숫자가 적힌 칸이 정확히 하나 있고, 그 섬에 속한 칸의 개수는 그 숫자와 같다.
  • 모든 물 칸은 같은 인접 규칙으로 하나로 이어져 있다.
  • 네 칸이 모두 물인 2×2 블록은 없다. 즉 격자의 모든 2×2 블록에는 섬 칸이 적어도 하나 있다.

채워진 판이 올바른지 판정하라.

적용할 대상이 없는 조건은 만족한 것으로 본다. 물 칸이 하나도 없는 판은 두 번째 조건을 만족하고, 행이 하나이거나 열이 하나인 판에는 2×2 블록이 없다.

입력

첫 줄에 판의 개수 TT가 주어진다.

각 판의 첫 줄에는 행의 수 NN과 열의 수 MM이 공백으로 구분되어 주어진다. 이어지는 NN개의 줄에 판의 각 행이 한 줄씩 주어진다. 각 행은 123456789.#에 속하는 문자 MM개로 이루어진 문자열이다. #는 물 칸, 숫자는 숫자가 적힌 섬 칸, .은 숫자가 적히지 않은 섬 칸이다.

  • 0<T1000 < T \le 100
  • 1N,M501 \le N, M \le 50

출력

각 판마다 올바르게 채운 판이면 YES, 아니면 NO를 한 줄에 출력한다.