#include <bits/stdc++.h>
using namespace std;
long long x, k, col;
vector<long long> d, g[10101];
void go(long long pos, long long K) {
  if (col == 100000) return;
  if (col == 10000) cerr << "Ok";
  if (pos == 0 || K == 0) {
    cout << d[pos] << " ";
    col++;
    return;
  }
  for (int j = 0; j < g[pos].size(); ++j) go(g[pos][j], K - 1);
}
int main() {
  cin >> x >> k;
  for (long long i = 1; i * i <= x; ++i)
    if (x % i == 0) {
      d.push_back(i);
      if (i != x / i) d.push_back(x / i);
    }
  sort(d.begin(), d.end());
  for (int i = 0; i < d.size(); ++i)
    for (int j = 0; j <= i; ++j)
      if (d[i] % d[j] == 0) g[i].push_back(j);
  go(d.size() - 1, k);
  return 0;
}
