#include <bits/stdc++.h>
using namespace std;
const int dx[8] = {1, 0, -1, 0, 1, -1, -1, 1};
const int dy[8] = {0, 1, 0, -1, 1, 1, -1, -1};
const int INF = 1000000000;
const long long LINF = 1000000000000000000;
const long long MOD = 1000000007;
const double PI = acos(-1.0);
const double EPS = 1e-10;
template <class T>
inline bool chmax(T& a, T b) {
  if (a < b) {
    a = b;
    return true;
  }
  return false;
}
template <class T>
inline bool chmin(T& a, T b) {
  if (a > b) {
    a = b;
    return true;
  }
  return false;
}
template <class T>
inline void add(T& a, T b) {
  a = ((a + b) % MOD + MOD) % MOD;
};
vector<long long> divisor(long long n) {
  vector<long long> res;
  for (long long i = 1; i * i <= n; i++) {
    if (n % i == 0) {
      res.push_back(i);
      if (i != n / i) res.push_back(n / i);
    }
  }
  return res;
}
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  long long n, k;
  cin >> n >> k;
  long long sum = 0;
  for (int i = 1; i <= k; i++) {
    sum += i;
    if (sum > n) {
      cout << -1 << endl;
      return 0;
    }
  }
  auto res = divisor(n);
  sort(res.rbegin(), res.rend());
  for (auto& r : res) {
    if (k * (k + 1) / 2 <= n / r) {
      for (long long i = 1; i < k; i++) {
        cout << r * i << " ";
      }
      long long last = n - (r * (k * (k - 1) / 2));
      cout << last << endl;
      return 0;
    }
  }
}

### Prompt

In Cpp, your task is to solve the following problem:

You are given positive integer number n. You should create such strictly increasing sequence of k positive numbers a1, a2, ..., ak, that their sum is equal to n and greatest common divisor is maximal.

Greatest common divisor of sequence is maximum of such numbers that every element of sequence is divisible by them.

If there is no possible sequence then output -1.

Input

The first line consists of two numbers n and k (1 ≤ n, k ≤ 1010).

Output

If the answer exists then output k numbers — resulting sequence. Otherwise output -1. If there are multiple answers, print any of them.

Examples

Input

6 3


Output

1 2 3


Input

8 2


Output

2 6


Input

5 3


Output

-1

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
const int dx[8] = {1, 0, -1, 0, 1, -1, -1, 1};
const int dy[8] = {0, 1, 0, -1, 1, 1, -1, -1};
const int INF = 1000000000;
const long long LINF = 1000000000000000000;
const long long MOD = 1000000007;
const double PI = acos(-1.0);
const double EPS = 1e-10;
template <class T>
inline bool chmax(T& a, T b) {
  if (a < b) {
    a = b;
    return true;
  }
  return false;
}
template <class T>
inline bool chmin(T& a, T b) {
  if (a > b) {
    a = b;
    return true;
  }
  return false;
}
template <class T>
inline void add(T& a, T b) {
  a = ((a + b) % MOD + MOD) % MOD;
};
vector<long long> divisor(long long n) {
  vector<long long> res;
  for (long long i = 1; i * i <= n; i++) {
    if (n % i == 0) {
      res.push_back(i);
      if (i != n / i) res.push_back(n / i);
    }
  }
  return res;
}
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  long long n, k;
  cin >> n >> k;
  long long sum = 0;
  for (int i = 1; i <= k; i++) {
    sum += i;
    if (sum > n) {
      cout << -1 << endl;
      return 0;
    }
  }
  auto res = divisor(n);
  sort(res.rbegin(), res.rend());
  for (auto& r : res) {
    if (k * (k + 1) / 2 <= n / r) {
      for (long long i = 1; i < k; i++) {
        cout << r * i << " ";
      }
      long long last = n - (r * (k * (k - 1) / 2));
      cout << last << endl;
      return 0;
    }
  }
}

```