#include <bits/stdc++.h>
using namespace std;
using ull = unsigned long long;
using pii = pair<int, int>;
using vi = vector<int>;
constexpr int M = 100000;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  ull n;
  int k;
  cin >> n >> k;
  vi dt(2 * M, 0);
  int md = 0, ld = -1;
  int nz = 0;
  while (n > 0) {
    ull b = n % 2;
    dt[M + md++] = b;
    if (b) {
      ++nz;
      if (ld == -1) ld = md - 1;
    }
    n /= 2;
  }
  if (nz > k) {
    cout << "No" << endl;
    return 0;
  }
  int cd = md - 1;
  while (nz < k && cd > -M) {
    if (nz + dt[M + cd] <= k) {
      nz += dt[M + cd];
      dt[M + cd - 1] += 2 * dt[M + cd];
      dt[M + cd] = 0;
      --cd;
    } else {
      break;
    }
  }
  int mm = min(cd, ld);
  while (nz < k) {
    dt[M + mm] -= 1;
    dt[M + mm - 1] += 2;
    --mm;
    ++nz;
  }
  cout << "Yes" << endl;
  for (int i = md; i >= mm; --i) {
    for (int j = 0; j < dt[M + i]; ++j) cout << i << ' ';
  }
  cout << endl;
  return 0;
}
