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