给定两个整数 $n$ 和 $m$,你需要构造一个满足以下约束的矩阵 $M$:
- 矩阵的行数和列数分别为 $n$ 和 $m$。
- 矩阵仅包含 $0$ 和 $1$,即对于所有 $1 \le i \le n$ 和 $1 \le j \le m$,有 $M_{i,j} \in \{0, 1\}$。
- 混合子矩形的数量等于纯子矩形的数量。包含 $0$ 和 $1$ 的子矩形被视为混合子矩形,否则为纯子矩形。注意,子矩形是若干连续行与若干连续列的交集。
如果存在多个解,输出其中任意一个。如果不存在解,请报告。
输入格式
第一行包含一个整数 $T$ ($1 \le T \le 10^5$),表示测试用例的数量。
对于每个测试用例,唯一的一行包含两个整数 $n$ 和 $m$ ($1 \le n, m \le 10^6$, $1 \le n \times m \le 10^6$),分别表示行数和列数。
保证所有测试用例的 $n \times m$ 之和不超过 $5 \times 10^6$。
输出格式
对于每个测试用例,如果不存在解,输出一行 “No”(不含引号)。如果存在解,第一行输出 “Yes”(不含引号)。接下来输出 $n$ 行,第 $i$ 行包含 $m$ 个整数 $M_{i,1}, M_{i,2}, \dots, M_{i,m}$,描述矩阵的第 $i$ 行。
样例
样例输入 1
2 2 3 1 1
样例输出 1
Yes 0 1 1 1 1 0 No
说明
在第一个样例中,混合子矩形和纯子矩形的数量均为 $9$。
在第二个样例中,唯一的子矩形是整个矩阵,它必须是纯的,因此混合子矩形的数量为 $0$,纯子矩形的数量为 $1$,两者不相等。