#include <bits/stdc++.h>
using namespace std;
long long n, k, cap;
multiset<int> ans;
vector<int> ret;
int main() {
  cin >> n >> k;
  for (int i = 0; i < 63; i++)
    if ((1ll << i) & n) ans.insert(i);
  while (ans.size() < k) {
    auto it = ans.end();
    it--;
    int val = *it;
    ans.erase(it);
    val--;
    ans.insert(val);
    ans.insert(val);
  }
  auto it = ans.end();
  it--;
  cap = *it;
  ans.clear();
  for (int i = 0; i < 63; i++)
    if ((1ll << i) & n) ans.insert(i);
  while (ans.size() < k) {
    it = ans.end();
    it--;
    int val = *it;
    if (val <= cap) {
      it = ans.begin();
      val = *it;
    }
    ans.erase(it);
    val--;
    ans.insert(val);
    ans.insert(val);
  }
  if (ans.size() != k)
    cout << "No";
  else {
    cout << "Yes" << endl;
    for (auto i : ans) ret.push_back(i);
    reverse(ret.begin(), ret.end());
    for (auto i : ret) cout << i << ' ';
  }
}
