#include <bits/stdc++.h>
using namespace std;
vector<long long> p, c;
vector<long long> factorise(long long i) {
  vector<long long> ret, vec;
  if (i == p.size()) {
    ret.push_back(1);
    return ret;
  }
  vec = factorise(i + 1);
  ret = vec;
  long long n = vec.size();
  long long pr = 1;
  for (long long j = 0; j < c[i]; ++j) {
    pr *= p[i];
    for (long long u = 0; u < n; ++u) ret.push_back(vec[u] * pr);
  }
  vec.clear();
  return ret;
}
long long sp[1000009];
vector<long long> factors(long long n) {
  long long prv = -1;
  while (n != 1) {
    if (sp[n] != prv) {
      p.push_back(sp[n]);
      c.push_back(1);
      prv = sp[n];
    } else
      c[c.size() - 1]++;
    n /= sp[n];
  }
  return factorise(0);
}
int main() {
  for (long long i = 0; i < 1000001; ++i) {
    if (i % 2 == 0)
      sp[i] = 2;
    else
      sp[i] = i;
  }
  for (long long i = 3; i < 1000001; i += 2) {
    if (sp[i] != i) continue;
    sp[i] = i;
    for (long long j = i * i; j < 1000001; j += i) {
      if (sp[j] == j) sp[j] = i;
    }
  }
  long long n, k, lp, d;
  cin >> n >> k;
  d = n;
  for (long long i = 2; i <= 1e5; ++i) {
    if (n % i == 0 && sp[i] == i) {
      lp = i;
      p.push_back(lp);
      c.push_back(0);
      while (d % lp == 0) {
        d /= lp;
        c[c.size() - 1]++;
      }
    }
  }
  p.push_back(d);
  c.push_back(1);
  if (k > 1e6 || (k * (k + 1)) / 2 > n) {
    cout << -1 << endl;
    return 0;
  }
  vector<long long> f = factorise(0);
  sort(f.begin(), f.end());
  int e = -1;
  long long v = (k * (k + 1)) / 2;
  for (int i = f.size() - 1; i >= 0; --i) {
    if (n / f[i] >= v) {
      e = i;
      break;
    }
  }
  if (e == -1) {
    cout << e << endl;
    return 0;
  }
  long long curr = 0;
  for (long long i = 1; i <= k - 1; ++i) {
    cout << i * f[e] << " ";
    curr += i;
  }
  cout << f[e] * ((n / f[e]) - curr) << endl;
  return 0;
}
