Недавно Максу подарили хитрую головоломку — кубик Рубика $$$2 \times 2 \times 2$$$.
Это устройство представляет собой куб $$$2 \times 2 \times 2$$$ с $$$24$$$-мя видимыми цветными квадратами. Грани большого куба способны вращаться вокруг трёх внутренних осей куба. Каждая из шести граней состоит из четырёх квадратов и окрашена в один из шести цветов: белый, оранжевый, жёлтый, красный, синий и зелёный.
Вращая грани куба, можно переупорядочивать цветные квадраты множеством различных способов. Задача состоит в том, чтобы путём вращения граней получить такой порядок, что все квадраты на одной грани будут иметь одинаковый цвет.
Макс сразу же бросился изучать схемы сборки кубика. Для удобства он нарисовал его развёртку и пронумеровал квадраты от $$$1$$$ до $$$24$$$, как представлено на рисунке $$$1$$$. Также он обозначил грани буквами F (фронтальная), U (верхняя), D (нижняя), L (левая), R (правая), B (задняя), как представлено на рисунке $$$2$$$. С учётом этих обозначений он стал записывать вращения граней куба двумя символами $$$SC$$$, где $$$S$$$ — одна из букв, обозначающих грань, а $$$C$$$ — число от $$$1$$$ до $$$3$$$, обозначающее количество поворотов грани по часовой стрелке. Например $$$L2$$$ будет означать поворот левой грани $$$2$$$ раза по часовой стрелке. Направление по часовой стрелке для каждой из граней представлено на рисунке $$$3$$$.
| |
Рисунок 1. Нумерация клеток кубика | Рисунок 2. Обозначения граней |
Рисунок 3. Направления вращения граней Изучая различные схемы сборки, Макс наткнулся на такие понятия, как алгоритм Бога и число Бога. Он узнал, что алгоритмом Бога называют любой алгоритм, собирающий головоломку за оптимальное число ходов. А число Бога — это наибольшее количество ходов в алгоритме Бога из всех возможных начальных состояний кубика. Он узнал, что для кубика Рубика $$$2 \times 2 \times 2$$$ это число равно $$$11$$$, с учётом, что одним ходом считается поворот одной грани $$$1$$$, $$$2$$$ или $$$3$$$ раза по часовой стрелке.
Макс сразу же захотел составить такой алгоритм, но так как он не Бог, он попросил вас помочь ему. Ваша задача по исходной конфигурации кубика Рубика вывести любую кратчайшую последовательность ходов, приводящую кубик в собранное состояние.
Выходные данные
В первой строке выведите целое число $$$M$$$ — количество ходов.
Во второй строке выведите $$$M$$$ строк вида $$$SC$$$, где $$$S$$$ — одна из букв {F, U, D, L, R, B}, а $$$C$$$ — число от $$$1$$$ до $$$3$$$, обозначающих вращения граней кубика. Если решений несколько, выведите любое.