#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int t = 1;
  while (t--) {
    long long n, k;
    cin >> n >> k;
    multiset<long long> s;
    map<long long, long long> cnt;
    long long h = 0;
    while (n) {
      if (k < 0) break;
      if (n & 1) {
        k--;
        s.insert(h);
        cnt[h]++;
      }
      n /= 2;
      h++;
    }
    if (k < 0)
      cout << "No";
    else {
      cout << "Yes\n";
      multiset<long long>::iterator it;
      while (k) {
        it = s.end();
        it--;
        if (cnt[*it] > k) {
          it = s.begin();
        }
        k--;
        cnt[*it]--;
        int temp = *it - 1;
        cnt[temp] += 2;
        s.erase(it);
        s.insert(temp);
        s.insert(temp);
      }
      multiset<long long>::reverse_iterator rit;
      for (rit = s.rbegin(); rit != s.rend(); ++rit) cout << *rit << " ";
    }
  }
  return 0;
}
