#include <bits/stdc++.h>
using namespace std;
using vint = vector<long long>;
using pint = pair<long long, long long>;
using vpint = vector<pint>;
template <typename A, typename B>
inline void chmin(A& a, B b) {
  if (a > b) a = b;
}
template <typename A, typename B>
inline void chmax(A& a, B b) {
  if (a < b) a = b;
}
template <class A, class B>
ostream& operator<<(ostream& ost, const pair<A, B>& p) {
  ost << "{" << p.first << "," << p.second << "}";
  return ost;
}
template <class T>
ostream& operator<<(ostream& ost, const vector<T>& v) {
  ost << "{";
  for (long long i = 0; i < v.size(); i++) {
    if (i) ost << ",";
    ost << v[i];
  }
  ost << "}";
  return ost;
}
inline long long topbit(unsigned long long x) {
  return x ? 63 - __builtin_clzll(x) : -1;
}
inline long long popcount(unsigned long long x) {
  return __builtin_popcountll(x);
}
inline long long parity(unsigned long long x) { return __builtin_parity(x); }
signed main() {
  long long N, K;
  cin >> N >> K;
  if (K > 1000000 || K * (K + 1) / 2 > N) {
    cout << -1 << endl;
    return 0;
  }
  long long s = K * (K + 1) / 2;
  long long G = 0;
  for (long long g = 1; g * g <= N; g++) {
    if (N % g) continue;
    if (N / s >= g) chmax(G, g);
    if (N / s >= N / g) chmax(G, N / g);
  }
  vint ans(K);
  iota((ans).begin(), (ans).end(), 1);
  ans[K - 1] += N / G - s;
  for (long long i = 0; i < (K); i++) ans[i] *= G;
  for (long long i = 0; i < (K); i++) {
    if (i) cout << " ";
    cout << ans[i];
  }
  cout << endl;
  return 0;
}
