Кратчайшая последовательность поворотов
Дана непустая модель из единичных кубиков и три целевых силуэта размером 3×3. За один ход разрешён один из четырёх поворотов, применяемый ко всем координатам:
- ;
- ;
- ;
- .
Это повороты на 90° вокруг неподвижных осей. Поворот вокруг отдельным ходом не разрешён. Координаты после хода могут стать отрицательными.
Для модели строят три множества пар: спереди , сверху , справа . Каждую проекцию отдельно сдвигают так, чтобы минимум первой и минимум второй координаты стали нулевыми. Затем пару отмечают единицей в строке , столбце матрицы 3×3; остальные клетки — нули. Нумерация строк и столбцов начинается с нуля, строки перечисляются сверху вниз.
Найдите минимальное число ходов, после которых все три полученные матрицы в точности совпадут с целевыми. Если это невозможно, выведите -1. Целевые матрицы дополнительно сдвигать, отражать или поворачивать нельзя.
Входные данные
Первая строка содержит (). Следующие строк содержат различные целые тройки (). Связность модели не гарантируется. Далее идут 9 строк из 3 символов 0 или 1: сначала 3 строки вида спереди, затем 3 строки вида сверху, затем 3 строки вида справа. Между матрицами нет служебных строк.
Выходные данные
Выведите минимальное число разрешённых поворотов или -1.
Примеры
6 0 0 0 1 0 0 1 1 0 1 1 1 2 1 1 2 2 1 110 011 001 110 011 000 010 110 100
0
Исходное положение уже подходит.
6 0 0 0 1 0 0 1 1 0 1 1 1 2 1 1 2 2 1 011 110 000 110 011 001 110 011 000
1
Достаточно одного поворота X+.
6 0 0 0 1 0 0 1 1 0 1 1 1 2 1 1 2 2 1 000 000 000 000 000 000 000 000 000
-1
Непустая модель не даёт пустые проекции.
Примечания
Оси сцены: x вправо, y вниз, z к зрителю. Определяющими являются формулы в условии. Для сравнения достаточно силуэтов: разные трёхмерные модели могут иметь одинаковые проекции.