#include <bits/stdc++.h>
using namespace std;
int main(int argc, char* argv[]) {
  long long n, k;
  long long cnt, tmp;
  int res[100005];
  int wei[100005];
  int p = 0, maxw;
  scanf("%I64d%I64d", &n, &k);
  cnt = 1;
  tmp = 0;
  while (n > cnt) {
    cnt *= 2;
    tmp++;
  }
  if (cnt > n) {
    tmp--;
    cnt /= 2;
  }
  while (n > 0) {
    if (n >= cnt) {
      n -= cnt;
      res[p] = tmp;
      p++;
    } else {
      cnt /= 2;
      tmp--;
    }
  }
  memset(wei, 0, sizeof(wei));
  if (p > k) {
    printf("No\n");
    return 0;
  } else if (p == k) {
    printf("Yes\n");
    sort(res, res + p);
    for (int i = p - 1; i >= 0; i--) {
      printf("%d", res[i]);
      i == 0 ? printf("\n") : printf(" ");
    }
  } else {
    printf("Yes\n");
    memset(wei, 0, sizeof(wei));
    maxw = 0;
    for (int i = 0; i < p; i++) {
      wei[res[i] + 100]++;
      if (res[i] + 100 > maxw) maxw = res[i] + 100;
    }
    cnt = p + 100;
    for (int i = maxw; i >= -100; i--) {
      if (wei[i] + p < k) {
        wei[i - 1] += 2 * wei[i];
        p += wei[i];
        wei[i] = 0;
        maxw--;
      } else if (wei[i] + p == k) {
        wei[i - 1] += 2 * wei[i];
        p += wei[i];
        wei[i] = 0;
        maxw--;
        for (int j = maxw; j >= 0; j--) {
          if (wei[j] == 0) continue;
          for (int k = wei[j]; k > 0; k--) {
            printf("%d", j - 100);
            if (k != 1) printf(" ");
          }
          if (j == 0)
            printf("\n");
          else
            printf(" ");
        }
        return 0;
      } else {
        for (int j = 0; j <= maxw; j++)
          if (wei[j] == 0)
            continue;
          else {
            tmp = j - 100;
            wei[j]--;
            break;
          }
        for (int j = maxw; j >= 0; j--) {
          if (wei[j] == 0) continue;
          for (int k = wei[j]; k > 0; k--) {
            printf("%d ", j - 100);
          }
        }
        while (p < k) {
          p++;
          tmp--;
          printf("%d ", tmp);
          if (p == k) printf("%d\n", tmp);
        }
        break;
      }
    }
  }
  return 0;
}
