J. Соединяй и разъединяй 1
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Играя в одну из популярных игр, программист Вася столкнулся с интересной задачей.

В игре присутствуют производители и потребители ресурсов, которые могут быть связаны конвейерными лентами. Конвейер работает, если у него есть работающие входное и выходное устройство. Не подключенный к выходному устройству, конвейер, со временем, переполняется и останавливается.

Для более гибкого управления, конвейерные ленты могут объединяться с помощью устройства, под названием «merger» или разъединяться с помощью устройства «splitter».

Устройство «merger» имеет 3 входа и один выход. Просматривая входы по очереди, устройство перекладывает предметы с входных конвейерных лент на выходную. Для корректной работы «merger»-а необходимо, чтобы предметы подавались конвейером хотя бы на один вход, и снимались с выхода (если выходному конвейеру будет некуда транспортировать предметы, или выходной конвейер остановится из-за переполнения, то устройство остановится).

Устройство «splitter» имеет 1 вход и 3 выхода. Принимая предметы со входного конвейера, «splitter» равномерно, по очереди, перемещает их на подключенные выходные конвейеры. То есть, если все три выхода подключены к работающим конвейерам, то входной поток будет разделен на 3 одинаковых (по 1/3), а если подключены только 2 выхода, то поток разделяется на 2 одинаковых (по 1/2).

В игре, для производства, часто необходимо разделить поток на 2 подпотока, в определенном соотношении . На Игровом форуме, Вася обнаружил несколько стандартных схем разделения потока в заданных пропорциях. Взглянув на эти схемы, Вася задумался, а возможно ли придумать алгоритм для любого соотношения, использующий разумное число вспомогательных устройств?

Пусть у нас имеется соотношение n:m ($$$1 \leqslant n, m; n+m \leqslant 10^{6}$$$). Предложите схему соединения «splitter»-ов и «merger»-ов, которая разбивает входной поток в пропорции $$$n$$$ к $$$m$$$, используя при этом, суммарно, не более 48 «splitter»-ов и «merger»-ов. В вашей схеме не должно быть стоящих конвейеров и устройств. Если есть несколько таких схем, правильной считается любая их них.

Примечание. Для простоты, считайте что конвейеры и устройства могут работать с любой скоростью, вплоть до бесконечной.

Входные данные

Единственная входная строка содержит 2 целых числа $$$n$$$ и $$$m$$$ ($$$1 \leqslant n, m; n+m \leqslant 10^{6}; gcd(n, m) = 1$$$), разделенные пробелом.

Выходные данные

Если решения не существует, то вывод должен содержать единственное число 0. Если решение есть, то первая строка вывода содержит целое число $$$k$$$ ($$$0 \lt k \leqslant 48$$$). Далее следуют $$$k$$$ строк, описывающих схему соединения «splitter»-ов и «merger»-ов. Каждая строка содержит описание одного устройства. Устройства нумеруются числами от $$$1$$$ до $$$k$$$ в порядке их появления.

Описание «splitter»-а начинается с заглавной латинской буквы «S». Далее следуют пробел и 3 целых числа, разделенных пробелами – номера устройств, к которым подключены выходы устройства. Если выход не подключен, то в качестве номера следует указать $$$0$$$ (ноль).

Описание «merger»-а начинается с заглавной латинской буквы «M». Далее следует пробел и целое число – номер устройства, куда передается объединенный поток.

Разделяемый входной поток всегда поступает на устройство номер 1. Результат разделения должен поступать на специальные «устройства» с номерами $$$-1$$$ $$$-2$$$. Данные «устройства» можно использовать только однократно.

Примеры
Входные данные
7 5
Выходные данные
5
S 2 3 5
S 3 4 0
M -1
S 3 5 0
M -2
Входные данные
1 4
Выходные данные
5
M 2
S 3 4 5
S -1 4 5
M -2
M 1
Примечание

Схеме разделения входного потока в отношении $$$7$$$ к $$$5$$$ выглядит так: Для это нужно $$$3$$$ splitter-а и $$$2$$$ merger-а. Входной поток поступает на первый модуль - splitter, который делит его на 3 одинаковых подпотока по $$$1/3$$$ от входного. По одной трети идет на выходные merger-ы, еще одна треть с помощью второго splitter-а делится пополам (два подпотока по $$$1/6$$$). Один подпоток $$$1/6$$$ идет на левый merger, второй делится еще один раз. Получившиеся подпотоки по $$$1/12$$$ от входого, направляются на merger-ы. Левый merger соединяет потоки $$$1/3 + 1/6 + 1/12 = 7/12$$$, правый $$$1/3 + 1/12 = 5/12$$$. Получаем соотношение $$$7/12$$$ к $$$5/12$$$ или $$$7$$$ к $$$5$$$.