#include <bits/stdc++.h>
using namespace std;
long long a[200005];
int main() {
  long long n, k;
  scanf("%lld%lld", &n, &k);
  long long ans = 0, p, q = -1, l = 100000;
  while (n) {
    if (n & 1) {
      if (q == -1) q = l;
      p = l;
      a[l++] = 1, ans++;
    } else
      a[l++] = 0;
    n >>= 1;
  }
  if (ans > k) {
    printf("No\n");
    return 0;
  }
  while (ans < k) {
    if (ans + a[p] <= k) {
      a[p - 1] += a[p] * 2;
      ans = ans + a[p];
      a[p] = 0;
      p--;
      if (p < q) q = p;
    } else {
      while (ans < k) {
        a[q] -= 1;
        a[q - 1] += 2;
        ans++;
        q--;
      }
    }
  }
  printf("Yes\n");
  for (int i = 100100; i >= 0; i--)
    if (a[i]) {
      for (int j = 0; j < a[i]; j++) printf("%d ", i - 100000);
    }
  printf("\n");
  return 0;
}
