最近 Bytesia 的一个煤矿发生了罢工。愤怒的矿工摧毁了矿场的所有数据。你被雇佣来恢复一些关于矿场不同区域开采何种煤炭的数据。
该公司开采 $k$ 种不同的煤炭。该煤矿是一个矩形网格。网格中的每个单位正方形区域恰好开采一种煤炭。在单位正方形边缘的某些中点上设有升降机,每种开采的煤炭类型对应一个升降机。由于煤矿必须是一件艺术品,因此开采第 $i$ 种煤炭的单位正方形集合必须关于分配给第 $i$ 种煤炭的升降机所在点对称。
给定煤矿的尺寸、煤炭种类数量 $k$ 以及 $k$ 个升降机的位置。你的任务是确定一种将单位正方形分配给煤炭类型的方法,使得上述条件得到满足,或者确定不存在这样的分配方案。
输入格式
输入的第一行包含一个整数 $z$,表示测试用例的数量。接下来是 $z$ 个测试用例,描述如下:
每个测试用例的第一行包含三个整数 $n, m$ 和 $k$ ($1 \le n, m, n \cdot m \le 1500, 1 \le k \le 100$):煤矿的尺寸和开采的煤炭种类数量。煤矿左上角区域的左上角坐标为 $(0, 0)$,右下角区域的右下角坐标为 $(n, m)$。
接下来是 $k$ 个升降机的位置,每一行包含升降机的坐标 $i, j$ ($0 \le i \le n, 0 \le j \le m$)。$i, j$ 中恰好有一个是整数,另一个是半整数(即 $x.5$ 的形式),表示网格单位正方形边缘上的一个点。第 $l$ 个(从 1 开始计数)升降机被分配给第 $l$ 种煤炭。
输出格式
对于每个测试用例,如果存在一种将煤炭类型分配给所有单位正方形的合理方案,首先输出一行单词 “YES”,否则输出 “NO”。
此外,如果存在这样的分配方案,你需要输出 $n$ 行,每行包含 $m$ 个用空格分隔的整数。第 $i$ 行(从 1 开始计数)的第 $j$ 个数字必须是一个整数,描述左上角坐标为 $(i-1, j-1)$、右下角坐标为 $(i, j)$ 的正方形所开采的煤炭类型。煤炭类型用从 1 到 $k$ 的整数表示。如果存在多种可能的答案,输出其中任意一种即可。
样例
样例输入 1
2 1 6 2 0.5 1 0.5 4 1 4 2 0.5 2 0.5 3
样例输出 1
YES 1 1 2 2 2 2 YES 1 1 1 1