#include <bits/stdc++.h>
using namespace std;
int lowbit(int x) { return x & (-x); }
const int maxn = 2e5 + 5;
int add, a[maxn];
int n, k;
bool can(void) {
  if (n < (long long)(k + 1) * k / 2) return false;
  return true;
}
int main(void) {
  scanf("%d%d", &n, &k);
  if (can()) {
    long long tot = (long long)(k + 1) * k / 2, sum = 0;
    n -= tot;
    add = n / k, n %= k;
    a[1] = 1 + add, sum = add;
    for (int i = 2; i <= k; ++i) {
      if (k - i + 1 <= n && i + sum + 1 <= 2 * a[i - 1])
        a[i] = i + sum + 1, sum += 1, n -= k - i + 1;
      else
        a[i] = i + sum;
    }
    if (n)
      puts("NO");
    else {
      puts("YES");
      for (int i = 1; i <= k; ++i) printf("%d ", a[i]);
      puts("");
    }
  } else
    puts("NO");
  return 0;
}
