#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 10;
const int maxm = 6e4 + 10;
const int inf = 0x3f3f3f3f;
const int mod = 998244353;
const double eps = 1e-7;
long long n, k;
long long p[maxn];
int tot;
void dfs(long long x, long long y) {
  if (tot >= 1e5) return;
  if (!x || y == 1) {
    cout << y << " ";
    tot++;
    return;
  }
  for (int i = 1; i <= p[0] && p[i] <= y; i++) {
    if (y % p[i]) continue;
    dfs(x - 1, p[i]);
    if (tot >= 1e5) return;
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> k;
  for (long long i = 1; i * i <= n; i++) {
    if (n % i == 0) {
      p[++p[0]] = i;
      if (i * i != n) p[++p[0]] = n / i;
    }
  }
  sort(p + 1, p + 1 + p[0]);
  dfs(k, n);
  return ~~(0 - 0);
}
