#include <bits/stdc++.h>
using namespace std;
const int dx[] = {1, 0, -1, 0, 1, 1, -1, -1};
const int dy[] = {0, 1, 0, -1, 1, -1, 1, -1};
const int day[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
void faster() {
  if (0) {
    freopen(
        "taskA"
        ".in",
        "r", stdin);
    freopen(
        "taskA"
        ".out",
        "w", stdout);
  }
  if (1) {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
  }
}
const long long INF = 1e18;
const int inf = 2e9;
const int MAXN = (int)2e5 + 5;
const int MOD = 1e9 + 7;
const long double PI = acos(-1);
const long double EPS = 3E-16;
const int ALPHA = 26;
void solve() {
  long long n, k;
  cin >> n >> k;
  if (k * (k + 1) / 2 > n) {
    cout << "NO\n";
    return;
  }
  long long N = (n - k * (k + 1) / 2);
  vector<long long> ans(k);
  for (int i = 0; i < k; i++) ans[i] = N / k + i + 1;
  N = N - N / k * k;
  for (int i = k - 1; i > 0; i--) {
    long long t = min(2ll * ans[i - 1] - ans[i], N);
    N -= t;
    ans[i] += t;
  }
  if (N > 0) {
    cout << "NO\n";
    return;
  }
  cout << "YES\n";
  for (auto &i : ans) cout << i << ' ';
}
int main() {
  faster();
  int t = 1;
  while (t--) {
    solve();
  }
  return 0;
}
