#include <bits/stdc++.h>
using namespace std;
long long n, k;
map<int, int> nr;
int main() {
  cin >> n >> k;
  for (int i = 62; i >= 0; i--) {
    if ((1ll << i) & n) {
      k--;
      nr[i]++;
    }
  }
  if (k < 0) {
    cout << "NO";
    return 0;
  }
  multiset<int> s;
  for (int i = 62; i >= -62; i--) {
    if (k >= nr[i]) {
      k -= nr[i];
      nr[i - 1] += 2 * nr[i];
      nr[i] = 0;
    } else {
      cout << "Yes\n";
      for (int i = 62; i >= -62; i--)
        for (int j = 0; j < nr[i]; j++) s.insert(i);
      break;
    }
  }
  while (k) {
    int x = *s.begin();
    s.erase(s.begin());
    s.insert(x - 1);
    s.insert(x - 1);
    k--;
  }
  for (auto it = s.rbegin(); it != s.rend(); it++) cout << *it << " ";
  return 0;
}
