У Эмиля есть число x, и он хочет превратить его в другое число y. Для этого он может выполнять следующие операции:
Увеличить текущее число x на 1 (x = x + 1) и заплатить 1 денежную единицу.
Уменьшить текущее число x на 1 (если x больше 0) (x = x - 1) и заплатить 1 денежную единицу.
Умножить x на любое положительное целое число k (x = k ⋅ x), заплатив 2k денежных единиц.
Поделить x на любое положительное целое число k (если x делится на k), (x = x / k) и заплатить 2k денежных единиц.
Напишите программу, которая вычислит минимальную сумму денег, необходимую Эмилю, чтобы превратить x в y. Кроме того, выведите последовательность операций в том порядке, в котором их нужно выполнить. Если существует несколько способов достичь минимальной стоимости, вы можете вывести любой из них. При этом не обязательно стремиться к минимальному количеству операций.
Входные данные
Вход содержит два целых числа x и y (1 ≤ x, y ≤ 10 000), которые задают начальное число Эмиля и желаемое число.
Выходные данные
В первой строке нужно вывести два числа через пробел: m и n, где m — количество операций, а n — минимальная сумма денег, необходимая для преобразования x в y.
В следующих m строках выведите индекс операции по порядку выполнения. Если операция — это Multiply (умножение) или Divide (деление) (то есть или ), следует вывести индекс операции и через пробел число .