백 칸 계산 퍼즐
시간 제한2초메모리 제한1024 MB
w×h 덧셈표에서 w+h-1개의 칸이 주어질 때, 위쪽과 왼쪽의 수가 유일하게 정해지는지 판정한다.
문제
백 칸 계산은 계산 훈련의 한 종류이다. 백 칸 계산에서는 10×10개의 빈 칸이 있는 종이가 주어진다. 10개의 열 위쪽에 0부터 9까지의 수가 임의의 순서로 적혀 있다. 10개의 행 왼쪽에도 0부터 9까지의 수가 임의의 순서로 적혀 있다. 아래 그림의 예처럼, 각 빈 칸에 위쪽 수와 왼쪽 수의 합을 채워 넣는다.

더 일반화된 훈련을 생각할 수 있다. 그러한 훈련은 열과 행의 수가 다를 수 있으며, 이를 w × h라 하자. 위쪽과 왼쪽에 적히는 수는 임의의 정수가 될 수 있다.
Hideo는 일반화된 백 칸 계산을 바탕으로 퍼즐을 설계하고 있다. 종이에는 일부 답 칸이 수로 채워져 있지만, 위쪽과 왼쪽의 수는 생략되어 있다. 퍼즐은 채워진 수와 일치하는 생략된 수를 찾는 것이다.
Hideo는 모든 올바른 합으로 채워진 종이를 준비한 뒤 그중 일부 합을 지우는 방식으로 퍼즐을 만들기로 했다. 이는 퍼즐에 적어도 하나의 해가 존재함을 보장한다. 그러나 해의 존재만으로는 충분하지 않다. 해가 유일해야 한다.
Hideo는 여러 번의 시행을 거쳐, 위쪽 수 중 가장 왼쪽 수를 0으로 고정했을 때 w × h개의 칸을 가진 퍼즐이 w + h − 1개의 합을 남겼을 때 유일한 해를 가질 수 있음을 알아냈다. 그러나 그는 유일한 해를 얻기 위해 어떤 칸을 남겨야 하는지는 알아내지 못했다.
당신의 임무는 Hideo가 만든 각 퍼즐 후보에 대해 해의 유일성을 판정하는 프로그램을 작성하여 그를 돕는 것이다.
입력
입력은 최대 100개의 데이터셋으로 구성되며, 각 데이터셋의 형식은 다음과 같다.
w h
x1 y1 n1
...
xk yk nk
첫 줄의 w와 h는 각각 한 행과 한 열에 있는 답 칸의 수이다(2 ≤ w ≤ 100, 2 ≤ h ≤ 100). 그다음에는 k개의 수가 답 칸에 남아 있다(k = w + h − 1). 두 번째 줄부터 시작하는 k개의 줄은 수 ni가 왼쪽에서 xi번째, 위에서 yi번째 칸에 있음을 나타낸다. xi, yi, ni는 1 ≤ xi ≤ w, 1 ≤ yi ≤ h, −100 ≤ ni ≤ 100을 만족하는 정수이다. 여기서 x = 1은 가장 왼쪽, y = 1은 가장 위를 뜻한다. 서로 다른 i와 j에 대해 xi ≠ xj이거나 yi ≠ yj이다.
입력의 끝은 두 개의 0이 공백으로 구분된 한 줄로 표시된다.
출력
각 데이터셋에 대해, 퍼즐에 유일한 해가 있으면 YES를, 그렇지 않으면 NO를 한 줄에 출력한다.