{"raw_statement":[{"iden":"background","content":"翻译自 [NERC 2018](https://neerc.ifmo.ru/archive/2018/neerc-2018-statement.pdf) M 题。"},{"iden":"statement","content":"Marika 正在制作一款名为 Minegraphed 的游戏，游戏内容是你在一个三维的长方体上移动。长方体游戏场地的每个单元格都是空单元格或障碍单元格。你总是在一个空单元格里面，要么在最底层，要么在一个障碍的顶部。对于每次移动，你可以选择东南西北中的一项进行移动，移动的规则如下：\n\n- 你不能移动至矩形立方体外面。\n- 如果你面前的单元格是空的，那么你可以向前移动一格，然后向底部落下，直到你到达最底层或者一个障碍。\n- 如果你在非最顶层，你前面的单元格是一个障碍物，你上面的单元格和这个障碍物上面的单元格都是空的，然后你可以爬到该障碍物的顶部。\n- 其余情况，你不能进行移动。\n\n长方体中有 $n$ 个可以站立的特殊空单元格，分别编号为 $1\\sim n$。\n\nMarika 还有一个 $n \\times n$ 的二维数组 $a$，表示一个包含 $n$ 个结点的有向图的邻接矩阵（$a_{i,j}=1$ 表示有一条边 $i\\to j$，反之亦然）。你需要满足 $i$ 在有向图上能通过若干条边到达 $j$，当且仅当在长方体的游戏场地中可以通过移动从编号为 $i$ 的单元格到达编号为 $j$ 的单元格。\n\n请构造一种合法方案。"},{"iden":"input","content":"第一行一个整数 $n \\ (1 \\leq n \\leq 9)$。\n\n然后 $n$ 行，每行 $n$ 个数分别为 $a_{i,1},a_{i,2},\\ldots,a_{i,n}$，表示有向图的邻接矩阵。"},{"iden":"output","content":"输出第一行 $x,y,z$ 表示你的矩形立方体的长宽高，你需要保证 $x \\times y \\times z \\leq 10^6$。\n\n然后 $z$ 层（自上向下），每层一个 $x \\times y$ 的矩形：$map_{i,j}$ 若为 `#` 表示障碍，若为 `.` 表示普通的空单元格，若为数字则表示一个特殊空单元格，数字表示其对应的编号。\n\n保证存在解法。"},{"iden":"note","content":"样例解释：\n\n![](https://cdn.luogu.com.cn/upload/image_hosting/w4266sez.png)\n\n对于所有数据保证 $1 \\leq n \\leq 9$，$a_{i,j} \\in \\{0, 1\\}$。"}],"translated_statement":null,"sample_group":[["4\n0 1 0 1\n0 0 1 0\n0 1 0 0\n1 0 0 0","4 2 3\n..#.\n.4..\n####\n1#.#\n..3.\n#2..\n"]],"show_order":[],"formal_statement":null,"simple_statement":null,"has_page_source":false}