#include <bits/stdc++.h>
using namespace std;
long long N, res, k, ans[100010];
bool check() {
  long long i;
  for (i = 1; i < k; i++)
    if (ans[i + 1] <= ans[i] or ans[i + 1] >= 2 * ans[i]) return false;
  return true;
}
int main() {
  long long i;
  cin >> N >> k;
  res = N;
  for (i = 1; i <= k; i++) {
    ans[i] = i;
    res -= i;
  }
  if (res < 0) {
    printf("NO");
    return 0;
  }
  auto tmp = res / k;
  for (i = 1; i <= k; i++) ans[i] += tmp, res -= tmp;
  for (i = k; i >= 2; i--) {
    auto t = min(res, ans[i - 1] * 2 - ans[i]);
    ans[i] += t;
    res -= t;
  }
  if (res == 0) {
    printf("YES\n");
    for (i = 1; i <= k; i++) printf("%lld ", ans[i]);
  } else {
    printf("NO\n");
  }
  return 0;
}
