#include <bits/stdc++.h>
using namespace std;
const int N = 1e5;
long long n, k;
long long a[N];
int findA0() {
  long long left = 1, right = 1e9;
  while (right - left > 1) {
    long long mid = (left + right) / 2;
    ((mid + k) * (mid + k - 1) / 2 - (mid - 1) * mid / 2 <= n ? left : right) =
        mid;
  }
  return left;
}
void solve() {
  int a0 = findA0();
  long long s = 0;
  for (int i = 0; i < k; ++i) s += (a[i] = a0 + i);
  long long d = n - s;
  for (int i = k - 1; i > 0; --i) {
    int tmp = a[i];
    a[i] = min(2 * a[i - 1], a[i] + d);
    d -= a[i] - tmp;
  }
  int tmp = a[0];
  a[0] = min(a[1] - 1, a[0] + d);
  d -= a[0] - tmp;
  if (d != 0) {
    cout << "NO\n";
    return;
  }
  cout << "YES\n";
  for (int i = 0; i < k; ++i) cout << a[i] << " ";
  cout << '\n';
}
int main() {
  cin >> n >> k;
  if (k * (k + 1) / 2 > n)
    cout << "NO\n";
  else if (k == 1)
    cout << "YES\n" << n << "\n";
  else
    solve();
  return 0;
}
