Debora 正在玩一款电子游戏。在其中一个关卡中,她得到了一个立方体和一个平面的 $n \times n$ 网格。网格中第 $i$ 行第 $j$ 列的单元格记为 $(i, j)$,其颜色为 $c_{i,j}$。Debora 可以看到整个网格,包括每个单元格的颜色。
立方体面的大小与网格单元格的大小相同。当我们说立方体位于单元格 $(i, j)$ 时,意味着它的底面与网格单元格 $(i, j)$ 重合。与底面相对的是顶面。朝向单元格 $(i + 1, j)$ 的面称为前侧面。后侧面朝向 $(i - 1, j)$,右侧面朝向 $(i, j + 1)$,左侧面朝向 $(i, j - 1)$。
最初,立方体位于单元格 $(1, 1)$。游戏的目标是将立方体滚动到单元格 $(n, n)$。
从任何单元格 $(i, j)$ 出发,Debora 只能将立方体向下移动到 $(i + 1, j)$,或者向右移动到 $(i, j + 1)$。向下移动的方式是绕着底面和前侧面之间的棱旋转立方体。例如,旋转后,前侧面成为新的底面。同样,向右移动的方式是绕着底面和右侧面之间的棱旋转立方体。
立方体的各个面尚未着色。Debora 必须为每个面涂上她想要的任何颜色。在游戏的每一刻,包括立方体位于 $(1, 1)$ 和 $(n, n)$ 的时刻,立方体底面的颜色必须与立方体所在网格单元格的颜色相匹配。
目标是为立方体着色,使得 Debora 能够按照上述条件将立方体从单元格 $(1, 1)$ 移动到单元格 $(n, n)$。请找出任何一种可能的立方体着色方案。
输入格式
每个测试包含多个测试用例。第一行包含测试用例的数量 $t$ ($1 \le t \le 625$)。接下来是各测试用例的描述。
每个测试用例的第一行包含一个整数 $n$ — 网格的行数和列数 ($2 \le n \le 50$)。
接下来的 $n$ 行中,第 $i$ 行包含 $n$ 个整数 $c_{i,1}, c_{i,2}, \dots, c_{i,n}$ ($0 \le c_{i,j} < 2^{24}$)。单元格 $(i, j)$ 的 RGB 颜色为 $c_{i,j}$。
保证所有测试用例的 $n^2$ 之和不超过 2500。
输出格式
对于每个测试用例,如果不存在这样的着色方案,请在单独的一行中输出单词 “No”。
否则,在第一行输出单词 “Yes”。
在第二行,输出六个整数 $a_b, a_l, a_k, a_f, a_r$ 和 $a_t$ — 分别代表立方体在初始位置 $(1, 1)$ 时,底面、左侧面、后侧面、前侧面、右侧面和顶面的颜色 ($0 \le a_i < 2^{24}$)。
如果存在多种可能的着色方案,输出其中任意一种即可。
样例
输入 1
4 2 1 1 0 0 3 1 2 3 9 6 4 7 8 1 4 1 2 3 4 9 8 7 5 10 8 12 2 13 14 15 6 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
输出 1
Yes 1 3 4 0 0 5 Yes 1 10 10 4 2 3 Yes 1 4 6 5 2 3 No
说明
在第三个样例测试用例中,立方体可以通过以下移动序列从 $(1, 1)$ 移动到 $(4, 4)$:右、右、右、下、下、下。