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:

n,k = map(int,input().strip().split())

arr = []
c = 0
m = n

def po(c):
    if c==0:
        return 1
    else:
        if c==1:
            return 2
        else:
            return 2<<(c-1)

while m!=0:
    if m%2!=0:
        arr.append(po(c))
    c+=1
    m =m//2

#print(*arr)

if len(arr)>k:
    print("NO")
else:
    if k>n:
        print("NO")
    else:
        if k==len(arr):
            print("YES")
            print(*arr)
        else:
            c = len(arr)
            while len(arr)!=k:
                c-=1
                #print(c)
                a = [arr[c]]
                i = 0
                while len(a)!=arr[c]:
                    #print(123)
                    if len(a)+len(arr)-1==k:
                        break
                    if a[i]!=1:
                        a.append(a[i]//2)
                        a[i] = a[i]//2
                    i = (i+1)%len(a)
                    #print(*a)
                arr.extend(a)
                arr[c],arr[len(arr)-1]=arr[len(arr)-1],arr[c]
                arr.pop()
                #print(arr)
            print("YES")
            print(*arr)