#include <bits/stdc++.h>
int bit[100101];
int main() {
  long long n;
  int k;
  scanf("%lld %d", &n, &k);
  int idx = 100000;
  int cnt = 0;
  int smallest = -1;
  while (n) {
    bit[idx++] = n % 2;
    if (bit[idx - 1] == 1) {
      cnt++;
      if (smallest == -1) smallest = idx - 1;
    }
    n /= 2;
  }
  if (cnt > k)
    puts("No");
  else {
    idx--;
    while (cnt < k) {
      if (!bit[idx]) {
        idx--;
      } else if (bit[idx] && cnt + bit[idx] <= k) {
        bit[idx - 1] += 2 * bit[idx];
        cnt += bit[idx];
        bit[idx] = 0;
        idx--;
      } else if (bit[idx]) {
        int nidx;
        if (idx > smallest)
          nidx = smallest;
        else
          nidx = idx;
        while (cnt < k) {
          bit[nidx - 1] += 2;
          bit[nidx]--;
          cnt++;
          nidx--;
        }
      }
    }
    puts("Yes");
    while (idx >= 0) {
      if (bit[idx]) {
        printf("%d ", idx - 100000);
        bit[idx]--;
      } else
        idx--;
    }
  }
}
