#7246. 1095C. C. Powers Of Two

0

1095C. C. Powers Of Two

1095C. C. Powers Of Two

CF1095C. Powers Of Two

时限: 4 秒 | 内存: 256 MB | 输入: 标准输入 | 输出: 标准输出

如果一个正整数 $x$ 可以表示为 $x = 2^y$,其中 $y$ 是非负整数,则称 $x$ 为 $2$ 的幂。因此,$2$ 的幂包括 $1, 2, 4, 8, 16, \dots$。

给定两个正整数 $n$ 和 $k$,你的任务是将 $n$ 表示为恰好 $k$ 个 $2$ 的幂的和。

输入格式

输入仅一行,包含两个整数 $n$ 和 $k$($1 \le n \le 10^9$,$1 \le k \le 2 \cdot 10^5$)。

输出格式

如果无法将 $n$ 表示为 $k$ 个 $2$ 的幂的和,输出 NO。

否则,输出 YES,并在下一行输出 $k$ 个正整数 $b_1, b_2, \dots, b_k$,其中每个 $b_i$ 都是 $2$ 的幂,且 $\sum\limits_{i=1}^{k} b_i = n$。如果有多组答案,可以输出任意一组。

样例输入 1

9 4

样例输出 1

YES
1 2 2 4

样例输入 2

8 1

样例输出 2

YES
8

样例输入 3

5 1

样例输出 3

NO

样例输入 4

3 7

样例输出 4

NO