У Василия есть число a, которое он хочет превратить в число b. Для этого он может производить два типа операций:
- умножить имеющееся у него число на 2 (то есть заменить число x числом 2·x);
- приписать к имеющемуся у него числу цифру 1 справа (то есть заменить число x числом 10·x + 1).
Вам надо помочь Василию получить из числа a число b с помощью описанных операций, либо сообщить, что это невозможно.
Обратите внимание, что в этой задаче не требуется минимизировать количество операций. Достаточно найти любой из способов получить из числа a число b.
Выходные данные
Если получить число b из числа a невозможно, выведите «NO» (без кавычек).
В противном случае в первую строку выведите «YES» (без кавычек). Во вторую строку выведите число k — количество чисел в последовательности превращений. В третьей строке выведите последовательность превращений x1, x2, ..., xk, причём:
- x1 должно быть равно a,
- xk должно быть равно b,
- число xi должно быть получено с помощью одной из двух операций из числа xi - 1 (1 < i ≤ k).
Если ответов несколько, разрешается вывести любой из них.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
2 162
|
YES
5
2 4 8 81 162
|
|
2
|
4 42
|
NO
|
|
3
|
100 40021
|
YES
5
100 200 2001 4002 40021
|