让我们来尝试一个骰子谜题。该谜题的规则如下。
- 谜题中使用如图 6 所示的六面骰子。
图 6:骰子的面
- 使用二十七个这样的骰子,搭建一个如图 7 所示的 $3 \times 3 \times 3$ 立方体。
图 7:$3 \times 3 \times 3$ 立方体
- 在搭建由骰子组成的立方体时,相互接触的相邻骰子面上的数字之和必须为七(见图 8)。例如,如果一对接触面中的一个面标记为“2”,则另一个面必须为“5”。
图 8:一对相互接触的面
- 给出了立方体的部分顶视图和前视图,即给出了顶面和正面部分骰子面上的数字。
图 9:立方体的顶视图和前视图
- 谜题的目标是找出所有与给定的顶视图和前视图信息一致的合理骰子排列。
你需要编写一个程序来解决这个谜题。
输入格式
输入包含多个数据集,格式如下:
$N$ $Dataset_1$ $Dataset_2$ ... $Dataset_N$
$N$ 是数据集的数量。
每个数据集的格式如下:
$T_{11} \ T_{12} \ T_{13}$ $T_{21} \ T_{22} \ T_{23}$ $T_{31} \ T_{32} \ T_{33}$ $F_{11} \ F_{12} \ F_{13}$ $F_{21} \ F_{22} \ F_{23}$ $F_{31} \ F_{32} \ F_{33}$
$T_{ij}$ 和 $F_{ij}$ ($1 \le i \le 3, 1 \le j \le 3$) 是如图 7 所示出现在顶视图和前视图中的骰子面,或者为零。零表示对应位置的面未知。
输出格式
对于每种合理的骰子排列,计算立方体右侧九个面上的数字之和,即根据图 7 中的符号,计算 $\sum_{i=1}^3 \sum_{j=1}^3 R_{ij}$。
对于每个数据集,你应该按升序输出所有合理排列对应的右视图总和,且不包含重复值。数字之间用单个空格分隔。
当某个数据集不存在合理的排列时,输出 0。
例如,假设给定的顶视图和前视图如下:
图 10:示例
存在四种合理的右视图,如图 11 所示。右视图的总和分别为 33、36、32 和 33。将它们按升序排列并去重后,答案应为“32 33 36”。
图 11:合理的右视图
每个数据集的输出应占一行。输出行末可能包含空格。
样例
样例输入 1
4 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 4 3 3 5 2 2 4 3 3 6 1 1 6 1 1 6 1 0 1 0 0 0 2 0 0 0 0 5 1 2 5 1 2 0 0 0 2 0 0 0 3 0 0 0 0 0 0 0 0 0 0 3 0 1
样例输出 1
27 24 32 33 36 0