Problem: 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, ....

You are given two positive integers n and k. Your task is to represent n as the sum of exactly k powers of two.

Input

The only line of the input contains two integers n and k (1 ≤ n ≤ 10^9, 1 ≤ k ≤ 2 ⋅ 10^5).

Output

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, ..., b_k such that each of b_i is a power of two, and ∑ _{i = 1}^{k} b_i = n. If there are multiple answers, you may print any of them.

Examples

Input


9 4


Output


YES
1 2 2 4 


Input


8 1


Output


YES
8 


Input


5 1


Output


NO


Input


3 7


Output


NO

Solution (in PYTHON3):

Solution:
#imports
import math

#vars
YesOrNo = ''
#functions
def logl(Result): print(*Result)
def log(n): print(n)
def rl():
    Numbers, CountDels = map(int, input().split())
    return Numbers, CountDels
    
def logic(Numbers, CountDels):
    num = [2**x for x in range(int(math.log(Numbers, 2)+1))]; _List = []
    for i in num[::-1]:
        while CountDels > 0 and Numbers-i >= CountDels-1:
            _List.append(i); Numbers -= i; CountDels -= 1
    return _List
def output(Result, Nums_time):
    if sum(Result) != Nums_time: YesOrNo = 'NO'
    else: YesOrNo = 'YES'
    return YesOrNo
def EndLog(YON, Result):
    log(YON)
    if YON == 'YES':
        logl(Result)
#program       
Numbers, CountDels = rl()
Nums_time = Numbers

Result = logic(Numbers, CountDels)

YON = output(Result, Nums_time)
EndLog(YON, Result)