균일한 잔디밭을 행과 열 단위 깎기로 목표 높이 패턴으로 만들 수 있는지 판정합니다.
보통4그리디행렬면접 대비아직 제출이 없습니다시간 제한5초메모리 제한512 MB앨리스와 밥의 집 앞 잔디밭은 세로 N 미터, 가로 M 미터인 직사각형이고, 1미터 x 1미터 크기의 정사각형 칸으로 나뉜다. 처음에는 모든 칸의 잔디 높이가 100밀리미터다.
두 사람이 새로 산 잔디깎이에는 높이 설정이 있다. 1 이상 100 이하의 정수 밀리미터 h를 지정하면, 지나간 칸 가운데 잔디가 h보다 높은 칸을 모두 높이 h로 깎는다. 이미 h 이하인 칸은 그대로 남는다. 잔디깎이는 잔디밭 가장자리의 아무 지점에서나 들여보낼 수 있고, 들어간 변에 수직인 직선을 따라 폭 1미터로 잔디를 깎으면서 반대편으로 빠져나간다. 한 번 지나갈 때마다 한 행 전체 또는 한 열 전체가 깎이는 셈이다. 높이는 잔디깎이가 잔디밭 밖에 있을 때만 바꿀 수 있어서 한 번 지나가는 동안에는 높이가 하나로 고정되지만, 원하는 횟수만큼 원하는 순서로 원하는 높이를 써서 지나가게 할 수 있다.
칸마다 원하는 잔디 높이를 적은 무늬가 주어진다. 잔디깎이를 여러 번 지나가게 해서 잔디밭을 정확히 그 무늬로 만들 수 있는지 판정하라.
첫 줄에 테스트 케이스의 수 T가 주어진다. 각 테스트 케이스의 첫 줄에는 두 정수 N과 M이 주어진다. 이어지는 N개의 줄 가운데 i번째 줄에는 M개의 정수 ai,j가 주어지고, 이는 i번째 행 j번째 칸에서 원하는 잔디 높이다.
제한
각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, y는 그 무늬를 만들 수 있으면 YES, 만들 수 없으면 NO다.