Уникуб — это замечательный набор кубиков разработанных Б.П. Никитиным специально для развития детей. Вот и Васе в детстве папа смастерил такую игрушку. В общем-то ничего особенного — просто набор из 27 покрашенных кубиков — грани у кубиков красные, синие и жёлтые. Но раскраска подобрана таким образом, чтобы можно было собрать кубы 3×3×3 с внешней поверхностью любого из этих трёх цветов. Более того, можно (хотя это и не так просто) собрать куб 3×3×3 с шахматной ракраской не только всех внешних граней но и всех 6 (а с учетом двух сторон разреза и всех 12) сечений этого куба. Словом, это игрушка для развития детей до 10 лет, и Вася с папой активно в нее играли.
Когда же они построили все фигуры, предложенные в книжке (которые точно можно было собрать), Вася начал приставать к папе — а можно ли собрать вот такую фигуру, да ещё чтобы вот с таким расположением цветов? Поначалу папа честно пытался собирать предложенные Васей фигуры: некоторые получались, некоторые — нет. В конце концов папа обратился к студентам УрГУ с просьбой автоматизировать его тяжкий труд. Конечно же, студенты, да ещё и вооружённые компьютером, должны легко выполнить его просьбу.
Ваша задача будет заключаться в написании программы, которая по информации об имеющемся наборе кубиков и фигуре, которую надо построить, подсказала бы, как нужно действовать, чтобы сложить эту фигуру. Все фигуры в данной задаче — это размещённые в клетках трёхмерного пространства кубики, такие, что на некоторые грани некоторых кубиков наложено требование иметь определённый цвет.
Исходные данные
В первой строке стоит одно число 1 ≤ N ≤ 30 — количество кубиков, имеющихся в Васином распоряжении. Далее следует N строк с описанием имеющихся кубиков: для каждой грани в порядке «передняя, верхняя, правая, нижняя, левая, задняя» указан номер цвета грани — число от 1 до 30. Далее в новой строке следует целое число M — общее число кубиков в фигуре, которую надо поcтроить (1 ≤ M ≤ 30). Наконец, следуют M строк с описанием кубиков фигуры в формате <X> <Y> <Z> <F> <U> <R> <D> <L> <B>, где X, Y, Z — координаты клетки (все от 0 до 30), F, U, R, D, L, B — требования к цветам кубика в этой клетке, в том же порядке, что при описании цветов имеющихся кубиков (от 1 до 30; если стоит 0, то цвет может быть любым). Система координат — левая (OX смотрит вправо, OY — вперед, OZ — вверх) — это естественная система координат для Васи, который строит фигуру из кубиков на полу.
Результат
Если хотя бы одно решение поставленной задачи есть, то программа должна выводить какое-нибудь решение в виде последовательности из M строк. Строка с номером i должна содержать номер кубика (в порядке перечисления их во входных данных, начиная с 1 — ничего странного, именно так дети и считают) для клетки с номером i (также в порядке перечисления их во входных данных, начиная с 1). Если решения нет, то надо вывести единственное число 0.
Пример
исходные данные | результат |
---|
1
6 1 3 4 5 2
1
0 0 0 1 2 3 6 5 4 | 1 |
Автор задачи: Александр Мироненко
Источник задачи: Чемпионат Уральского государственного университета, 25 октября 2003 года