#include <bits/stdc++.h>
using namespace std;
#pragma comment(linker, "/STACK:667177216")
const long long mod = 1000000007;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  long long n, k;
  cin >> n >> k;
  map<int, int> mapik;
  int sz = 0;
  for (int i = 63; i >= 0; i--)
    if ((1ll << i) & n) {
      mapik[i]++;
      sz++;
    }
  if (k < sz) {
    cout << "No\n";
    return 0;
  }
  cout << "YES\n";
  for (int i = 63; i >= -63; i--) {
    if (sz + mapik[i] > k) break;
    sz += mapik[i];
    mapik[i - 1] += mapik[i] * 2;
    mapik[i] = 0;
  }
  multiset<int> ms;
  for (int i = 63; i >= -63; i--)
    for (int j = 0; j < mapik[i]; j++) ms.insert(i);
  while (ms.size() < k) {
    auto it = ms.begin();
    int a = *it;
    ms.erase(it);
    ms.insert(a - 1);
    ms.insert(a - 1);
  }
  for (auto it = ms.rbegin(); it != ms.rend(); it++) {
    cout << *it << ' ';
  }
  cout << '\n';
  return 0;
}
