Собрал дедушка или не собрал?
Широко известна игрушка, названная "кубиком Рубика", состоящая из кубиков, как показано на рисунке 1a, где буквы указывают цвета (например, B для синего, R для красного и т.д.). Цель игры состоит в том, чтобы вращая грани, добится такого состояния кубика, чтобы в конце каждая грань имела одинаковый, но свой уникальный цвет, как это показано на рисунке. Обратите внимание, что когда грань вращается, изменяется конфигурация цветов во всех смежных гранях. Рисунок 2 иллюстрирует вращение одной из граней.
Но ваш дедушка имеет многлетний опыт, и утверждает, что для любой конфигурации кубика Рубика, он может придумать последовательность вращений, приводящих к конечной конфигурации. Чтобы показывать все грани кубика, мы будем представлять куб так, как показано на рисунке 3a. Шесть цветов будут всегда желтым (Y), красным (R), синим (B), зеленым (G), белым (W) и фиолетовым (M), представленными их первыми буквами в названиях на английском языке.
Вам задано начальную конфигурацию кубик и список вращений. Вращение будет представлено целым числом, указывающим грань, которая вращается и направлением вращения (положительное число означает вращение по часовой стрелке, отрицательное - вращение против часовой стрелки). Грани кубика пронумерованы так, как показано на рисунке 3b. Вы должны написать программу, которая проверяет, приводит ли заданный список вращений к конечной конфигурации кубика.
Входные данные
Вход содержит несколько тестовых случаев. Первая строка - целое число, указывающее число тестов. Каждый тест состоит из десяти строк. Первые девять строк каждого теста описывают начальную конфигурацию, в формате, показанном в иллюстрации 3a. Следующая строка содержит список вращений, заканчивающихся числом 0.
Выходные данные
Ваша программа должна вывести одну строку, состоящую из последовательности 0 и 1 без пробелов. Если кубик собран - вывести 1, иначе выведите 0.