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:
a,b=map(int,input().split())
c=0
s=(str(bin(a))[2:])[::-1]
lol=[]
for i in range(len(s)):
    if s[i]=="1":
        lol.append(pow(2,i))
        c+=1
#print(lol)   

if b>a or b<c:
    print("NO")
else:
    k=b-c
    while len(lol)<b:
        yo=[]
        for i in range(len(lol)):
            #print(i,lol)
            if lol[i]>1:
                yo.append(lol[i]//2)
                yo.append(lol[i]//2)
                k-=1
            else:
                yo.append(lol[i])
            if k==0:
                for j in range(i+1,len(lol)):
                    yo.append(lol[j])
                break    
        #print(lol,yo)            
        lol=yo[:]    
    print("YES")
    print(*lol)