#include <bits/stdc++.h>
#pragma GCC optimize(2)
using namespace std;
namespace IO_Optimization {
inline long long read() {
  long long X = 0, w = 0;
  char ch = 0;
  while (!isdigit(ch)) {
    w |= ch == '-';
    ch = getchar();
  }
  while (isdigit(ch)) {
    X = (X << 3) + (X << 1) + (ch ^ 48);
    ch = getchar();
  }
  return w ? -X : X;
}
inline void write(long long x) {
  if (x < 0) putchar('-'), x = -x;
  if (x > 9) write(x / 10);
  putchar(x % 10 + '0');
}
}  // namespace IO_Optimization
using namespace IO_Optimization;
long long n, k, GCD, ans;
inline bool check(long long now) { return k * (k + 1) / 2 <= (n / now); }
int main() {
  n = read(), k = read();
  if (k > 2e9) {
    write(-1);
    exit(0);
  }
  for (long long i = 1; i * i <= n; i++) {
    if (n % i != 0) continue;
    long long dis = n / i;
    if (check(i)) {
      if (GCD < i) {
        GCD = i;
      }
    }
    if (check(dis)) {
      if (GCD < dis) {
        GCD = dis;
      }
    }
  }
  if (!GCD) {
    puts("-1");
    exit(0);
  }
  for (long long i = 1; i < k; i++) {
    write(i * GCD), putchar(' ');
    ans += i * GCD;
  }
  write(n - ans);
  return 0;
}
