#CF1917E. E. 构造矩阵

E. 构造矩阵

E. 构造矩阵 每次测试时间限制:1 秒
每次测试内存限制:256 兆字节

你得到一个偶数 nn 和一个整数 kk。你的任务是构造一个大小为 n×nn \times n 的矩阵,矩阵由数字 0011 组成,使得满足以下条件,或者报告不可能:

  • 矩阵中所有数字的和恰好为 kk
  • 对于每一行 ii,该行所有数字的按位异或(XOR) 都相同;
  • 对于每一列 jj,该列所有数字的按位异或(XOR) 都相同。

输入
每个测试包含多个测试用例。第一行包含一个整数 tt1t1301 \le t \le 130)——测试用例的数量。接下来是每个测试用例的描述。

每个测试用例由一行描述,包含两个整数 nnkk2n10002 \le n \le 1000nn 是偶数,0kn20 \le k \le n^2)。

保证所有测试用例的 nn 之和不超过 20002000

输出
对于每个测试用例,如果能够构造一个满足所有条件的矩阵,输出 Yes,否则输出 No

如果可以构造矩阵,则接下来的 nn 行中,第 ii 行应包含 nn 个整数,表示矩阵第 ii 行的元素。

示例
输入

5
4 0
6 6
6 5
4 2
6 36

输出

Yes
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
Yes
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
No
No
Yes
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1

注意
在第一个示例中,所有条件都满足:

  • 矩阵中所有数字的和恰好为 00
  • 对于每一行 ii,该行所有数字的 XOR 为 00
  • 对于每一列 jj,该列所有数字的 XOR 为 00

在第三个示例中,可以证明不可能找到满足所有条件的矩阵。