在这个问题中,你需要构造一个 $n$ 行 $n$ 列的网格。网格的每个单元格中都有一个整数,其中 $a_{i,j}$ 表示位于第 $i$ 行第 $j$ 列的单元格中的整数。从 $1$ 到 $n^2$ 的每个整数(包含 $1$ 和 $n^2$)在网格中恰好出现一次。
如果满足以下两个条件中的至少一个,我们称整数 $x$ 为该网格的一个“宾果整数”(bingo integer):
- 至少存在一行,该行所有单元格中的整数都小于或等于 $x$。
- 至少存在一列,该列所有单元格中的整数都小于或等于 $x$。
显而易见,一个网格可能有多个宾果整数,但在本问题中,我们只关心最小的宾果整数。
给定整数 $n$ 和 $k$,请构造一个 $n$ 行 $n$ 列的网格,使得其最小的宾果整数恰好为 $k$。
输入格式
输入包含多组测试数据。第一行包含一个整数 $T$ ($1 \le T \le 50$),表示测试数据的组数。对于每组测试数据:
第一行包含两个整数 $n$ 和 $k$ ($1 \le n \le 50, 1 \le k \le n^2$)。
输出格式
对于每组测试数据:
- 如果可以构造出一个 $n$ 行 $n$ 列的网格,使得其最小的宾果整数为 $k$,则首先输出一行
Yes。然后输出 $n$ 行,其中第 $i$ 行包含 $n$ 个由空格分隔的整数 $a_{i,1}, a_{i,2}, \dots, a_{i,n}$,表示网格第 $i$ 行的整数。请注意,从 $1$ 到 $n^2$ 的每个整数(包含 $1$ 和 $n^2$)必须在网格中恰好出现一次。如果存在多个合法的答案,你可以输出其中任意一个。 - 如果无法找到答案,则仅输出一行
No。
样例
输入 1
4 3 5 4 10 5 2 1 1
输出 1
Yes 4 2 5 7 1 9 8 6 3 Yes 14 9 2 13 1 11 16 8 10 3 7 5 6 15 4 12 No Yes 1