#include <bits/stdc++.h>
using namespace std;
map<long long, vector<long long> > divs;
vector<long long> out;
void print() {
  for (int i = 0; i < out.size(); ++i) {
    cout << out[i] << " ";
  }
  cout << endl;
}
void dfs(long long x, long long k) {
  if (k == 0 || x == 1) {
    if (out.size() < 100000)
      out.push_back(x);
    else {
      print();
      exit(0);
    }
    return;
  }
  if (!divs.count(x)) {
    vector<long long> tmp0;
    stack<long long> tmp1;
    int i;
    for (i = 1; i * 1LL * i < x; ++i) {
      if (x % i == 0) {
        tmp0.push_back(i);
        tmp1.push(x / i);
      }
    }
    if (i * 1LL * i == x) tmp0.push_back(i);
    while (!tmp1.empty()) tmp0.push_back(tmp1.top()), tmp1.pop();
    divs[x] = tmp0;
  }
  vector<long long>& tmp = divs[x];
  if (tmp.size() == 2) {
    for (int i = 0; i < k && out.size() < 100000; ++i) {
      out.push_back(1);
    }
    if (out.size() < 100000)
      out.push_back(x);
    else {
      print();
      exit(0);
    }
  } else {
    for (int i = 0; i < tmp.size(); ++i) {
      dfs(tmp[i], k - 1);
    }
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  long long x, k;
  cin >> x >> k;
  dfs(x, k);
  print();
}
