B. Фибоначчи на Доске
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

Числа Фибоначчи представляют собой последовательность: f0 = 0, f1 = 1, f2 = 1, f3 = 2, f4 = 3, f5 = 5, ..., fn = fn - 2 + fn - 1. Таким образом, каждое следующее число является суммой двух предыдущих.

Байтек разработал изящный способ вычислять числа Фибоначчи на доске. Сначала он пишет 0. Затем под ним он пишет 1. Затем он выполняет две следующих операции:

  • операция «T»: заменяет верхнее число суммой обоих чисел;
  • операция «B»: заменяет нижнее число суммой обоих чисел.

Если он выполнит n операций, начиная с операции «T», чередуя операции «T» и «B» (так, чтобы последовательность операций имела вид «TBTBTBTB...»), то последнее записанное число будет равно fn + 1.

К сожалению, Байтек иногда ошибается и повторяет операцию два или более раз подряд. Например, если Байтек хочет посчитать f7, то ему надо выполнить n = 6 операций: «TBTBTB». Если вместо этого Байтек выполнит последовательность операций «TTTBBT», то он сделает 3 ошибки и получит неверный результат, что седьмое число Фибоначчи равно 10. Количество ошибок в последовательности операций — это количество соседних равных операций («TT» или «BB»).

Вам дано число n — количество операций, выполненных Байтеком в попытке посчитать fn + 1 и число r, результат его вычислений (то есть, последнее написанное на доске число). Найдите наименьшее возможное количество ошибок, сделанных Байтеком, и любую возможную последовательность из n операций с найденным минимальным количеством ошибок, результатом которых было бы число r.

Предположим, что Байтек всегда правильно начинает последовательность операций, с операции «T».

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

Первая строка содержит два целых числа n и r (1 ≤ n, r ≤ 106).

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

Первая строка выходного файла должна содержать единственное число — наименьшее возможное количество ошибок, допущенное Байтеком. Вторая строка должна содержать n символов, начинающихся с «T», описывающих одну из возможных последовательностей операций с таким количеством ошибок. Каждый символ должен быть либо «T», либо «B».

Если искомой последовательности не существует, выведите «IMPOSSIBLE» (без кавычек).

Примеры
Входные данные
6 10
Выходные данные
2
TBBTTB
Входные данные
4 5
Выходные данные
0
TBTB
Входные данные
2 1
Выходные данные
IMPOSSIBLE