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:
def dvoich(n):
    v=[]
    import math
    while True:
        x=2**(math.trunc(math.log(n,2)))
        v.append(x)
        n-=x 
        if(n==0):
            return(v)
n,k=map(int,input().split())
d=sorted(dvoich(n),reverse=True)
f=len(d)
g=0
m=[]
if(f>k):
    print("NO")
elif(n<k):
    print("NO")
elif(f==k):
    print("YES")
    for t in d:
        print(int(t),end=" ")
else:
    print("YES")
    while True:
        try:
            x=d[-1]
        except:
            for t in d:
                    print(int(t),end=" ")
            for t in m:
                    print(int(t),end=" ")
            exit(0)
        if(x==1):
            d.pop()
            m.append(x)
        else:
            if(f<k):
                d.pop()
                d.append(x/2)
                d.append(x/2)
                f+=1
            elif(f==k):
                for t in d:
                    print(int(t),end=" ")
                for t in m:
                    print(int(t),end=" ")
                break