#include <bits/stdc++.h>
using namespace std;
vector<long long> vec, fac;
long long n, k;
void dfs(long long x, long long level) {
  if (vec.size() == 100000) return;
  if (level == k or x == 1) {
    vec.push_back(x);
    return;
  }
  for (long long i = 0; i < fac.size() and fac[i] <= x; i++) {
    if (vec.size() == 100000) return;
    if (x % fac[i]) continue;
    dfs(fac[i], level + 1);
  }
}
int main() {
  cin >> n >> k;
  for (long long i = 1; i * i <= n; i++) {
    if (n % i == 0) {
      fac.push_back(i);
      long long div = n / i;
      if (i == div) continue;
      fac.push_back(div);
    }
  }
  sort(fac.begin(), fac.end());
  dfs(n, 0);
  for (long long i : vec) cout << i << ' ';
}
