В Koλ tech работает много людей. Нет, бесконечно много
людей. Но их количество всего лишь счётно, то есть их можно
пронумеровать целыми положительными числами.
Собственно, специалисты Koλ tech уже
позаботились об этом. Более того, офис Koλ tech представляет собой
бесконечную в одну сторону последовательность кабинетов, в i-м из
которых работает i-й сотрудник.
Сотрудники Koλ tech пронумерованы так хитро, что в подчинении
сотрудника с номером x находятся те и только те сотрудники, чей номер
делится на x и строго больше x.
В процессе работы сотрудники обмениваются служебными записками. В
Koλ tech приняты два способа передачи служебных записок.
- Можно просто дойти до адресата и отдать ему записку. На это тратится
время, равное расстоянию между кабинетами сотрудников, которое вычисляется
как модуль разности их номеров.
- В Koλ tech есть система пневматической почты, с помощью
которой любой сотрудник может отправить записку любому из своих
подчинённых. Временем передачи записки по пневматической почте можно
пренебречь.
Заметим, что для ускорения процесса иногда выгодно передавать записки не
напрямую.
Исторически сложилось так, что сотрудники с меньшими номерами считаются
более влиятельными (какая чушь, ведь у всех сотрудников
счётное число подчинённых). Размер совета директоров
Koλ tech равен магическому числу 7, и входят в него сотрудники с
номерами от 1 до 7. На очередном заседании совета директоров было
замечено, что передача служебных записок от членов совета директоров
сейчас происходит слишком медленно. Из-за этого корпорация терпит серьёзные
убытки, поэтому это нужно срочно исправить. А именно, нужно уметь доставлять
служебную записку от члена совета директоров до любого сотрудника за
минимально возможное время.
Эту работу поручили сотруднику №2718281828459045, то есть вам.
Выполняйте!
Иногда члены совета директоров посылают записки сами себе, просто чтобы не
забыть важную информацию.
Исходные данные
В единственной строке даны целые числа s и t — номер отправителя
служебной записки и номер её получателя соответственно (1 ≤ s ≤ 7;
1 ≤ t ≤ 109).
Результат
В первой строке выведите целое число — время, которое требуется для
передачи записки. Во второй строке выведите целое число k — количество
сотрудников, которые поучаствуют в передаче (включая отправителя и
получателя). В третьей строке выведите k целых чисел — номера сотрудников в
том порядке, в котором они получат записку. Если в процессе передачи
сотрудник получит записку несколько раз, то его номер нужно выводить
каждый раз.
Учтите, что k не должно превышать 104, а номера сотрудников не должны
превышать 1014. Гарантируется, что существует оптимальный маршрут,
удовлетворяющий этим ограничениям. Если оптимальных маршрутов несколько,
можно вывести любой из них.
Сотрудник может передавать записку только другому сотруднику. Маршрут записки
может состоять из одного сотрудника.
Примеры
исходные данные | результат |
---|
5 7
| 2
2
5 7
|
3 30
| 0
2
3 30
|
6 1000000
| 1
3
6 5 1000000
|
Автор задачи: Алексей Данилюк
Источник задачи: Чемпионат УрФУ среди юниоров 2016