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

Solution:
#include <bits/stdc++.h>
using namespace std;
int64_t bit_count(uint64_t i) {
  i = i - ((i >> 1) & 0x5555555555555555);
  i = (i & 0x3333333333333333) + ((i >> 2) & 0x3333333333333333);
  return (((i + (i >> 4)) & 0x0F0F0F0F0F0F0F0F) * 0x0101010101010101) >> 56;
}
int64_t minll(int64_t x, int64_t y) { return x < y ? x : y; }
void f(int64_t i, int64_t k) {
  if (k == 0) {
    ;
  } else if (k == 1) {
    cout << (1ll << i) << " ";
  } else {
    f(i - 1, k / 2);
    f(i - 1, k - k / 2);
  }
}
signed main() {
  int64_t n, k;
  cin >> n >> k;
  int64_t bcount = bit_count(n);
  if (bcount > k || k > n) {
    cout << "NO" << endl;
    return 0;
  }
  bcount--;
  cout << "YES" << endl;
  for (int64_t i = (0); i < (64); i++) {
    if ((n & (1ll << i)) != 0) {
      int64_t t = minll(k - bcount, 1ll << i);
      f(i, t);
      k -= t;
      bcount--;
    }
  }
  cout << endl;
  return 0;
}