#include <bits/stdc++.h>
using namespace std;
void cmax(long long int &a, long long int b) {
  if (a < b) a = b;
}
const int mod = 1000000007;
bool comp(int x, int y) { return x > y; }
void printarr(int arr[], int n) {
  for (int i = 0; i < n; ++i) std::cout << arr[i] << (i < n - 1 ? ' ' : '\n');
}
template <typename T>
void printv(T &a) {
  for (auto it = a.begin(); it != a.end(); ++it) std::cerr << *it << ' ';
  std::cerr << '\n';
}
int gint() {
  int n;
  cin >> n;
  return n;
}
const int maxn = 200009;
long long int ans;
int arr[maxn];
void solve() {
  ans = 0;
  bool ok = false;
  int m = gint();
  int n = gint();
  long long int sum = 0;
  for (int i = 0; i < n; ++i) {
    arr[i] = i + 1;
    sum += arr[i];
    if (sum > m) ok = 1;
  }
  if (!ok) {
    for (int i = 0; i < n; ++i) {
      arr[i] += (m - sum) / n;
    }
    int res = (m - sum) % n;
    for (int i = n - 2; i >= 0; --i) {
      int temp;
      arr[i + 1] += temp = min(arr[i] * 2 - arr[i + 1], res);
      res -= temp;
    }
    sum = arr[0];
    for (int i = 1; !ok && i < n; ++i) {
      ok = (arr[i] > arr[i - 1] * 2);
      sum += arr[i];
    }
    ok = !(sum == m);
  }
  std::cout << (!ok ? "YES" : "NO");
  std::cout << '\n';
  if (!ok) printarr(arr, n);
  std::cout << '\n';
}
void sol() {}
int main() {
  std::ios_base::sync_with_stdio(false);
  std::cin.tie(nullptr);
  int testcases = 1;
  for (int t = 0; t < testcases; ++t) {
    solve();
  }
  return 0;
}
