Задача G. Жизнь чисел на дереве

Автор:Антон Карабанов   Ограничение времени:1 сек
Входной файл:Стандартный вход   Ограничение памяти:256 Мб
Выходной файл:Стандартный выход  

Условие

Все натуральные числа разместились в узлах бинарного дерева по порядку (сверху вниз, слева направо). На рисунке Вы можете видеть верхнюю часть дерева.

Возможно ли, двигаясь от корня по рёбрам, набрать в сумме число n?

Формат входных данных

Единственная строка входных данных содержит натуральное число n.

Обратите внимание, что при заданных ограничениях для хранения ответа необходимо использовать 64-битный тип данных, например long long в C++, int64 в Free Pascal, long в Java.

Формат выходных данных

Выведите в первой строке Yes или No — ответ на вопрос задачи.

Если нужную сумму набрать возможно, выведите во второй строке через пробел в порядке возрастания последовательность натуральных чисел — искомый маршрут.

Ограничения

1 ≤ n ≤ 1018

Пояснение к примеру

В первом примере сумму n = 5 набрать невозможно.

Во втором примере сумму n = 16 набрать можно, если сложить числа 1, 2, 4 и 9.

Примеры тестов

Стандартный вход Стандартный выход
1
5
No
2
16
Yes
1 2 4 9

0.203s 0.022s 15