#P9660. 立方体

立方体

题目描述

Source:CF1320F。

有一条狗在做梦。

她梦见了一个长方体,这个长方体具有极其美丽的颜色,并且构造十分特殊。正在她欣赏这个长方体的时候,她忽然醒了。她依稀记得自己从长方体的上下左右前后六个面观察过长方体。她告诉了你从六个面看到的图案,同时她还告诉你长方体有如下性质:

  1. 从前面看的时候,长方体长 nn,宽 mm,高 kk。并且长方体由 n×m×kn\times m\times k1×1×11\times 1\times 1 的小立方体无缝拼接而成。
  2. 每个小立方体或者有自己的颜色(用一个在 [1,n×m×k][1,n\times m\times k] 内的整数表示),或者是透明的(用 00 表示)。
  3. 从一个方向观察时,观察到的是所有该方向上的第一个非透明方块的颜色构成的图案。特殊的,如果该方向上有一排方块全部透明,则观察到的格子上的图案用 00 表示。

试着帮她还原这个长方体,或者告诉她她记错了,即不存在这样的长方体。

输入格式

第一行三个整数 n,m,kn,m,k

然后六个矩阵,表示从六面看到的图案。为了方便表述,构造立体坐标系,如上图所示。其中 OO 为右、下、前三面的公共点所在的小立方体的中心。长方体的 xx 轴范围 [1,n][1,n]yy[1,m][1,m]zz[1,k][1,k]

第一个矩阵是 m×km\times k 的矩阵,表示从右面看到的图案。第 iijj 列表示 (0,i,j)(0,i,j) 所在的格子向 x+x+ 方向看到的图案。

第二个矩阵是 m×km\times k 的矩阵,表示从左面看到的图案。第 iijj 列表示 (n+1,i,j)(n+1,i,j) 所在的格子向 xx- 方向看到的图案。

第三个矩阵是 n×kn\times k 的矩阵,表示从前面看到的图案。第 iijj 列表示 (i,0,j)(i,0,j) 所在的格子向 y+y+ 方向看到的图案。

第四个矩阵是 n×kn\times k 的矩阵,表示从后面看到的图案。第 iijj 列表示 (i,m+1,j)(i,m+1,j) 所在的格子向 yy- 方向看到的图案。

第五个矩阵是 n×mn\times m 的矩阵,表示从下面看到的图案。第 iijj 列表示 (i,j,0)(i,j,0) 所在的格子向 z+z+ 方向看到的图案。

第六个矩阵是 n×mn\times m 的矩阵,表示从上面看到的图案。第 iijj 列表示 (i,j,k+1)(i,j,k+1) 所在的格子向 zz- 方向看到的图案。

上述 a×ba\times b 的矩阵均表示输入时矩阵有 aa 行,每行 bb 个数,一个空格分隔。

请注意输入的矩阵反人类直觉。

输出格式

(1,1,1)(1,1,1)(n,m,k)(n,m,k) 输出每个点的颜色(00 表示透明)。相邻两个数之间使用空格分隔。按照 xxyyzz 轴依次从小到大的顺序输出,即先输出 (1,1,1)(1,1,1) 点对应的立方体的颜色,再输出 (1,1,2)(1,1,2) 点对应立方体的颜色,然后是 $(1,1,3),(1,1,4),\ldots,(1,1,k),(1,2,1),\ldots,(1,2,k),\ldots,(1,m,k),(2,1,1),(2,1,2),\ldots,(2,m,k),\ldots,(n,m,k)$ 这些点对应的立方体颜色。

如有多解,输出任一解即可,如无解,输出 1-1

样例

1 1 1
1
1
1
1
1
1
1

提示

附加文件中提供一个 view.cpp,其先读入三个数表示 n,m,kn,m,k,随后读入 n×m×kn\times m\times k 个数表示构造方案,随后其会输出六个矩阵,表示从六面看到的图案,具体输出格式同题面中的输入格式。

注意即使输入错误的构造方案或输入无解方案其也会输出。

数据范围

  • 对于 15%15\% 的数据,n×m×k8n\times m\times k\le 8
  • 对于 30%30\% 的数据,n×m×k15n\times m\times k\le 15
  • 对于 45%45\% 的数据,n×m×k103n\times m\times k\le 10^3
  • 对于另外 15%15\% 的数据,k=3k=3,且满足如果存在合法方案,则 $\exist C\not=0:\forall 1\le x\le n,1\le y\le m:(x,y,1)=(x,y,3)=C$。
  • 对于 100%100\% 的数据,1n×m×k2×1051\le n\times m\times k\le 2\times 10^5。读入的数满足在 [0,n×m×k][0,n\times m\times k] 之间。