Powers Of Two

题意翻译

给出`n`,`k`,求出一个长度为`k`的2的幂的数列,使得$\sum_{i=1}^ka_i=n$

题目描述

A positive integer $ x $ is called a power of two if it can be represented as $ x = 2^y $ , where $ y $ is a non-negative integer. So, the powers of two are $ 1, 2, 4, 8, 16, \dots $ . You are given two positive integers $ n $ and $ k $ . Your task is to represent $ n $ as the sum of exactly $ k $ powers of two.

输入输出格式

输入格式


The only line of the input contains two integers $ n $ and $ k $ ( $ 1 \le n \le 10^9 $ , $ 1 \le k \le 2 \cdot 10^5 $ ).

输出格式


If it is impossible to represent $ n $ as the sum of $ k $ powers of two, print NO. Otherwise, print YES, and then print $ k $ positive integers $ b_1, b_2, \dots, b_k $ such that each of $ b_i $ is a power of two, and $ \sum \limits_{i = 1}^{k} b_i = n $ . If there are multiple answers, you may print any of them.

输入输出样例

输入样例 #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