小雅米定义一个长度为 n 的向量为回文向量当且仅当对于任意整数 i∈[1,n] 都有 ai=an−i+1。
例如 (3,1,3) 就是一个回文向量,而 (1,2,3) 则不是一个回文向量。
小雅米定义一个 n×n 的方阵为回文方阵当且仅当这个方阵每一行和每一列的 n 个元素组成的向量均为回文向量。
例如
⎣⎡131313131⎦⎤就是一个回文方阵。
而
⎣⎡131213331⎦⎤就不是一个回文方阵,因为第一行 (1,2,3) 第二列 (2,1,3) 第三列 (3,3,1) 都不是回文向量。
现在小雅米有 n×n 个元素,试问用这 n×n 个元素是否能组成一个 n×n 的回文方阵。如果可以请输出 "YES",并输出任意一解,否则输出 "NO"。
第一行一个正整数 T(1≤T≤20) 代表测试数据组数。
接下来为 T 组数据的具体内容,每组数据第一行一个正整数 n(1≤n≤20)。
第二行 n×n 个正整数,每个正整数均大于等于 1 且小于等于 1000。
对于每一组测试数据,如果有解输出 "YES",无解则输出 "NO"(不含引号)。
如果有解,接下来再输出 n 行,每行 n 个正整数,代表由输入的 n×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