#include <bits/stdc++.h>
using namespace std;
long long int n, k;
vector<long long int> v;
bool valid(const long long int &gcd) {
  long long int minimum = (((1LL + k) * k) >> 1LL) * gcd;
  return (minimum > 0) and (n >= minimum);
}
void print(const long long int &gcd) {
  for (long long int i = 1; k > 1; ++i, --k) {
    long long int current = i * gcd;
    printf("%lld ", current);
    n -= current;
  }
  printf("%lld\n", n);
}
int main() {
  scanf("%lld %lld", &n, &k);
  if (k >= sqrt(n * 2LL)) {
    puts("-1");
    return 0;
  }
  for (long long int i = 1; i <= sqrt(n); ++i) {
    if ((n % i) == 0) {
      v.push_back(i);
      v.push_back(n / i);
    }
  }
  sort(v.rbegin(), v.rend());
  for (int i = 0; i < v.size(); ++i) {
    if (valid(v[i])) {
      print(v[i]);
      return 0;
    }
  }
  puts("-1");
  return 0;
}
