#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-10;
const double PI = 3.14159265358979323846264338;
inline long long multi(long long x, long long y) {
  long long tmp =
      (x * y -
       (long long)((long double)x / 998244353 * y + 1.0e-8) * 998244353);
  return tmp < 0 ? tmp + 998244353 : tmp;
}
long long n, k;
int a[1000005 + 100];
int main() {
  ios ::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> k;
  int cnt = 0;
  memset(a, 0, sizeof(a));
  int i = 1000005;
  for (; i < 1000005 + 64; i++) {
    a[i] += n >> (i - 1000005) & 1;
    k -= a[i];
  }
  if (k < 0) {
    cout << "No"
         << "\n";
    return 0;
  }
  int l = 1000005 + 63;
  for (int l = 1000005 + 63; l >= 0; l--) {
    if (k >= a[l]) {
      k -= a[l];
      a[l - 1] += 2 * a[l];
      a[l] = 0;
    } else {
      int r = 0;
      while (!a[r]) r++;
      while (k--) {
        a[r]--;
        a[r - 1] += 2;
        r--;
      }
      break;
    }
  }
  cout << "Yes"
       << "\n";
  for (int i = 1000005 + 63; i >= 0; i--) {
    while (a[i]--) {
      cout << i - 1000005 << " ";
    }
  }
  cout << "\n";
  return 0;
}
