A. Превращение: из A в B
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У Василия есть число a, которое он хочет превратить в число b. Для этого он может производить два типа операций:

  • умножить имеющееся у него число на 2 (то есть заменить число x числом x);
  • приписать к имеющемуся у него числу цифру 1 справа (то есть заменить число x числом 10·x + 1).

Вам надо помочь Василию получить из числа a число b с помощью описанных операций, либо сообщить, что это невозможно.

Обратите внимание, что в этой задаче не требуется минимизировать количество операций. Достаточно найти любой из способов получить из числа a число b.

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

В первой строке записаны два целых положительных числа a и b (1 ≤ a < b ≤ 109) — число, которое есть у Василия, и число, которое он хочет получить.

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

Если получить число b из числа a невозможно, выведите «NO» (без кавычек).

В противном случае в первую строку выведите «YES» (без кавычек). Во вторую строку выведите число k — количество чисел в последовательности превращений. В третьей строке выведите последовательность превращений x1, x2, ..., xk, причём:

  • x1 должно быть равно a,
  • xk должно быть равно b,
  • число xi должно быть получено с помощью одной из двух операций из числа xi - 1 (1 < i ≤ k).

Если ответов несколько, разрешается вывести любой из них.

Примеры
Входные данные
2 162
Выходные данные
YES
5
2 4 8 81 162
Входные данные
4 42
Выходные данные
NO
Входные данные
100 40021
Выходные данные
YES
5
100 200 2001 4002 40021