#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e18;
const int mod = 1e9 + 7;
const int N = 1e5 + 10;
inline int add(int x, int y) {
  x += y;
  if (x >= mod) x -= mod;
  return x;
}
inline int mul(int x, int y) {
  x = (1LL * x * y) % mod;
  return x;
}
int main() {
  long long n;
  int k;
  scanf("%lld%d", &n, &k);
  int freq[100005] = {0};
  int i = 99940;
  int num = 0;
  while (n > 0) {
    freq[i] = n % 2;
    if (freq[i] == 1) num++;
    n /= 2;
    i++;
  }
  if (num > k)
    cout << "No";
  else {
    int high = 0;
    for (int i = 99940; i <= 100004; ++i)
      if (freq[i] == 1) high = i;
    for (int i = high; i >= 0; --i) {
      if (num + freq[i] <= k) {
        freq[i - 1] = freq[i - 1] + 2 * freq[i];
        num = num + freq[i];
        freq[i] = 0;
      } else {
        break;
      }
    }
    int i = 0;
    while (freq[i] <= 0) i++;
    while (num != k) {
      num++;
      freq[i]--;
      freq[i - 1] += 2;
      i--;
    }
    cout << "Yes\n";
    for (int i = 100004; i >= 0; --i) {
      for (int j = 1; j <= freq[i]; ++j) cout << i - 99940 << " ";
    }
  }
  return 0;
}
