#include <bits/stdc++.h>
using namespace std;
int main() {
  long long n, k, cn, count = 0, i = 0;
  cin >> n >> k;
  cn = n;
  std::map<int, int> v;
  while (n) {
    if (n & 1) count++, v[i + 100]++;
    n >>= 1;
    i++;
  }
  if (k < count) {
    cout << "No";
    return 0;
  }
  cout << "yes\n";
  for (int i = 199; i >= 0; i--)
    if (v[i]) {
      if (count == k) break;
      if (k - count > 0) {
        if (v[i] > k - count) {
          break;
        } else {
          v[i - 1] += v[i] * 2;
          count += v[i];
          v[i] = 0;
        }
      }
    }
  for (int i = 0; i < 199; ++i) {
    if (v[i] && count != k) {
      while (k - count > 0) {
        v[i] -= 1;
        v[i - 1] += 2;
        count++;
        i--;
      }
      break;
    }
  }
  int z = 0;
  for (int i = 200; z != count; i--)
    if (v[i]) {
      for (int j = 0; j < v[i]; j++) cout << i - 100 << " ";
      z += v[i];
    }
}
