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 altro(n,d):
    for i in range(len(d)):
        if n < d[i]:
            return d[i-1]

def mini(n, d):
    if n == 1:
        return 1
    if n > d[-1]:
        return d[-1]
    if n in d:
        return n
    return altro(n,d)

def f(n,k,d):
    m = n
    flag = True
    lista = []
    while flag:
        if k == 1:
            flag = False
            if m in d:
                lista.append(str(m))
                res = ["YES", lista]
            else:
                res = ["NO", []]
        else:
            if k > m:
                flag = False
                res = ["NO", []]
            elif k == m:
                flag = False
                res = ["YES", lista + [str(1)] * k]
            else:
                diff = m - k + 1
                el = mini(diff, d)
                lista.append(str(el))
                m -= el
                k -= 1
    return res    


if __name__ == '__main__':
    lista = list(map(int, input().rstrip().split()))
    #lista = map(int, raw_input().rstrip().split())
    n = lista[0]
    k = lista[1]
    d = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 
    65536, 131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432, 
    67108864, 134217728, 268435456, 536870912]
    [ans, lista] = f(n,k,d)
    print(ans)
    if ans == "NO":
        pass
    else:
        print(' '.join(lista))