#include <bits/stdc++.h>
using namespace std;
const int maxn = 200020;
inline long long read() {
  char ch = getchar();
  long long x = 0, f = 0;
  while (ch < '0' || ch > '9') f |= ch == '-', ch = getchar();
  while (ch >= '0' && ch <= '9') x = x * 10 + ch - '0', ch = getchar();
  return f ? -x : x;
}
int n, k, ans[maxn], al;
int main() {
  n = read();
  k = read();
  if (1ll * k * (k + 1) / 2 > n) return puts("NO"), 0;
  for (int i = (1); i <= (k); i++) ans[i] = i;
  int sum = k * (k + 1) / 2, ad = (n - sum) / k;
  for (int i = (1); i <= (k); i++) ans[i] += ad;
  sum = (n - sum) % k;
  for (int i = (k); i >= (k - sum + 1); i--) {
    ans[i]++;
    if (ans[i] > 2 * ans[i - 1]) ans[i]--, ans[k]++;
  }
  if (k != 1 && ans[k] > 2 * ans[k - 1])
    puts("NO");
  else {
    puts("YES");
    for (int i = (1); i <= (k); i++) printf("%d ", ans[i]);
  }
}
