Кубик Рубика
Студенты, которые приняли участие в Норвежском открытом соревновании по сборке кубика Рубика, настолько увлеклись головоломкой, что каждый из них приобрел себе собственный кубик. Преподаватели, в свою очередь, пришли в смятение, потому что студенты вместо того чтобы слушать лекции занимались сборкой кубика.
У одного профессора появилась замечательная идея. Он решил дать задание студентам написать программу по сборке кубика Рубика. Если такая программа будет написана, то у студентов пропадет желание заниматься сборкой кубика, и они снова будут слушать лекции. Сам профессор не хочет заниматься программированием, поэтому он попросил Вас сделать указанную работу. Профессор забрал Ваш кубик, закрыл Вас в лаборатории и сообщил, что не отдаст кубик пока Вы не напишите программу по его сборке.
К счастью, профессор не указал размер кубика, поэтому Вы решили приступить к написанию программы по сборке кубика Рубика 2×2×2.
Входные данные
Первая строка содержит количество тестов T (0 < T ≤ 100). Каждый тест описывается шестью строками, в которых задается начальное состояние кубика, формат которого показан в примере входных данных. Каждый цвет соответствует одной из букв G, R, O, B, Y и W. После каждого теста расположена пустая строка.
Вы можете считать, что все входные кубики являются закодированными версиями настоящего кубика с шестью различными цветами (существует в точности четыре квадрата каждого цвета, из начального состояния всегда можно собрать кубик стандартными вращениями).
Выходные данные
Для каждого теста в отдельной строке вывести наименьшее количество вращений, которое необходимо совершить для сборки кубика. Вращением называется поворот одной грани на угол 90 градусов по или против часовой стрелки. Поворот на 180 градусов считается двумя вращениями.