C. Степени двойки
ограничение по времени на тест
4 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Положительное целое число $$$x$$$ называется степенью двойки, если его можно представить как $$$x = 2^y$$$, где $$$y$$$ — неотрицательное целое число. Иными словами, степени двойки — это числа $$$1, 2, 4, 8, 16, \dots$$$.

Вам даны два положительных целых числа $$$n$$$ и $$$k$$$. Представьте $$$n$$$ как сумму ровно $$$k$$$ степеней двойки.

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

В единственной строке входных данных заданы два числа $$$n$$$ и $$$k$$$ ($$$1 \le n \le 10^9$$$, $$$1 \le k \le 2 \cdot 10^5$$$).

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

Если невозможно представить $$$n$$$ как сумму $$$k$$$ степеней двойки, выведите NO.

Иначе выведите YES, а затем — $$$k$$$ положительных целых чисел $$$b_1, b_2, \dots, b_k$$$, таких, что $$$b_i$$$ являются степенями двойки, и $$$\sum \limits_{i = 1}^{k} b_i = n$$$. Если ответов несколько, выведите любой из них.

Примеры
Входные данные
9 4
Выходные данные
YES
1 2 2 4 
Входные данные
8 1
Выходные данные
YES
8 
Входные данные
5 1
Выходные данные
NO
Входные данные
3 7
Выходные данные
NO