#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void checkmin(T &a, T b) {
  if (b < a) a = b;
}
template <class T>
inline void checkmax(T &a, T b) {
  if (b > a) a = b;
}
int N;
int K;
int a[200500];
int main() {
  int n;
  scanf("%d", &n);
  scanf("%d", &K);
  long long N = n;
  if (K == 1) {
    printf("YES\n%d\n", N);
    return 0;
  }
  for (int i = (0); i < (int)(K); i++) a[i] = 1 + i, N -= (1 + i);
  if (N < 0) {
    printf("NO\n");
    return 0;
  }
  int bei = N / K;
  for (int i = (0); i < (int)(K); i++) a[i] += bei;
  N %= K;
  for (int i = ((K)-1); i >= (int)(0); i--)
    if (N > 0) a[i]++, N--;
  if (a[1] > 2 * a[0]) a[1]--, a[K - 1]++;
  for (int i = (0); i < (int)(K - 1); i++) {
    if (a[i + 1] > 2 * a[i]) {
      printf("NO\n");
      return 0;
    }
  }
  printf("YES\n");
  for (int i = (0); i < (int)(K - 1); i++) printf("%d ", a[i]);
  printf("%d\n", a[K - 1]);
}
