#include <bits/stdc++.h>
using namespace std;
long long n, k, viz[1 << 18];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  cin >> n >> k;
  long long step = (1 << 17);
  long long nr = 0;
  for (int i = 0; i <= 60; ++i)
    if (n & (1LL << i)) {
      viz[i + step] = 1;
      nr++;
    }
  if (nr > k) {
    cout << "No";
    return 0;
  }
  k -= nr;
  for (int i = step + 60; i > 0 && k; --i) {
    int mini = min(k, viz[i]);
    if (viz[i] - mini > 0) break;
    viz[i - 1] += 2 * mini;
    k -= mini;
    viz[i] -= mini;
  }
  int mini = step + 60;
  for (int i = step + 60; i > 0; --i)
    if (viz[i]) mini = i;
  for (int i = mini; i > 0 && k; --i)
    if (viz[i]) {
      viz[i]--;
      viz[i - 1] += 2;
      --k;
    }
  cout << "Yes\n";
  for (int i = step + 60; i > 0; --i)
    while (viz[i]) {
      cout << i - step << ' ';
      viz[i]--;
    }
  return 0;
}
