#include <bits/stdc++.h>
using namespace std;
const int N = 100000;
vector<long long int> divs;
vector<long long int> ans;
void factorise(long long int n) {
  vector<long long int> tmp;
  for (long long int i = 1; i * i <= n; i++)
    if (n % i == 0) {
      divs.push_back(i);
      if (i != n / i) tmp.push_back(n / i);
    }
  while (tmp.size()) {
    divs.push_back(tmp.back());
    tmp.pop_back();
  }
}
void dfs(long long int n, int k) {
  if (ans.size() == N) return;
  if (n == 1) {
    ans.push_back(1);
    return;
  }
  if (!k) {
    ans.push_back(n);
    return;
  }
  for (int i = 0; i < divs.size(); i++) {
    if (divs[i] > n) break;
    if (n % divs[i] == 0) {
      dfs(divs[i], k - 1);
    }
  }
}
int main() {
  long long int n, k;
  cin >> n >> k;
  if (n == 1) {
    printf("1");
    return 0;
  }
  if (k >= N) {
    for (int i = 0; i < N; i++) printf("1 ");
    return 0;
  }
  factorise(n);
  dfs(n, k);
  for (int i = 0; i < ans.size(); i++) cout << ans[i] << " ";
  cout << endl;
  return 0;
}
