C. 回文方阵

传统 1000 ms 256 MiB
标准 IO
Special Judge

题目描述

小雅米定义一个长度为 nn 的向量为回文向量当且仅当对于任意整数 i[1,n]i∈[1,n] 都有 ai=ani+1a_i = a_{n-i+1}

例如 (3,1,3)(3,1,3) 就是一个回文向量,而 (1,2,3)(1,2,3) 则不是一个回文向量。

小雅米定义一个 n×nn \times n 的方阵为回文方阵当且仅当这个方阵每一行和每一列的 nn 个元素组成的向量均为回文向量。

例如

[131313131]\left[ \begin{matrix} 1 & 3 & 1\\ 3 & 1 & 3\\ 1 & 3 & 1\\ \end{matrix} \right]

就是一个回文方阵。

[123313131]\left[ \begin{matrix} 1 & 2 & 3\\ 3 & 1 & 3\\ 1 & 3 & 1\\ \end{matrix} \right]

就不是一个回文方阵,因为第一行 (1,2,3)(1,2,3) 第二列 (2,1,3)(2,1,3) 第三列 (3,3,1)(3,3,1) 都不是回文向量。

现在小雅米有 n×nn \times n 个元素,试问用这 n×nn \times n 个元素是否能组成一个 n×nn \times n 的回文方阵。如果可以请输出 "YES",并输出任意一解,否则输出 "NO"

输入格式

第一行一个正整数 T(1T20)T(1\leq T \leq 20) 代表测试数据组数。

接下来为 TT 组数据的具体内容,每组数据第一行一个正整数 n(1n20)n(1 \leq n \leq 20)

第二行 n×nn \times n 个正整数,每个正整数均大于等于 11 且小于等于 10001000

输出格式

对于每一组测试数据,如果有解输出 "YES",无解则输出 "NO"(不含引号)。

如果有解,接下来再输出 nn 行,每行 nn 个正整数,代表由输入的 n×nn \times n 个正整数组成的回文方阵。

任意一种符合要求的回文方阵皆可。

样例

样例输入

3
3
1 2 3 4 5 6 7 8 9
3
1 1 3 3 1 3 1 3 1
1
1

样例输出

NO
YES
1 3 1
3 1 3
1 3 1
YES
1