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 PYTHON):

Solution:
from math import log

N, K = map(int,raw_input().split())
b = bin(N)

pows = []
for i in range(len(b)-1, 1, -1) :
  if int(b[i]) == 1 : pows.append(pow(2,len(b)-i-1))

if len(pows) <= K :
  K -= len(pows)
  ones = 0

  ind = 0
  while ind < len(pows) and K > 0 :
    if pows[ind] == 1 :
      ind += 1
    elif K >= pows[ind] :
      K -= pows[ind]-1
      ones += pows[ind]
      del pows[ind]    
    else :
      v = pows[ind] / 2
      pows.append(v)
      pows.append(v)
      del pows[ind]
      K -= 1
    
  pows += [1] * ones

  if K > 0 : print "NO"
  else :
    print "YES"
    print ' '.join(str(x) for x in pows)
    
else :
  print "NO"