Dice Puzzle
Let's try a dice puzzle. The rules of this puzzle are as follows.
1. Dice with six faces as shown in Figure 1 are used in the puzzle.
Figure 1. Faces of a die
2. With twenty seven such dice, a 3×3×3 cube is built as shown in Figure 2.
Figure 2. 3×3×3 cube
3. When building up a cube made of dice, the sum of the numbers marked on the faces of adjacent dice that are placed against each other must be seven (See Figure 3). For example, if one face of the pair is marked "2", then the other face must be "5".
Figure 3. A pair of faces placed against each other
4. The top and the front views of the cube are partially given, i.e. the numbers on faces of some of the dice on the top and on the front are given.
Figure 4. Nop and front views of the cube
5. The goal of the puzzle is to find all the plausible dice arrangements that are consistent with the given top and front view information.
Your job is to write a program that solves this puzzle.
Input
The input consists of multiple datasets in the following format.
N
Dataset_1
Dataset_2
...
Dataset_N
N is the number of the datasets.
The format of each dataset is as follows.
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 and F_ij (1 ≤ i ≤ 3, 1 ≤ j ≤ 3) are the faces of dice appearing on the top and front views, as shown in Figure 7, or a zero. A zero means that the face at the corresponding position is unknown.
Output
For each plausible arrangement of dice, compute the sum of the numbers marked on the nine faces appearing on the right side of the cube, that is, with the notation given in Figure 2,
For each dataset, you should output the right view sums for all the plausible arrangements, in ascending order and without duplicates. Numbers should be separated by a single space.
When there are no plausible arrangements for a dataset, output a zero.
For example, suppose that the top and the front views are given as follows.
Figure 5.
There are four plausible right views as shown in Figure 6. The right view sums are 33, 36, 32, and 33, respectively. After rearranging them into ascending order and eliminating duplicates, the answer should be "32 33 36".
The output should be one line for each dataset. The output may have spaces at ends of lines.
Figure 6.