#include <bits/stdc++.h>
using namespace std;
long long x, k;
vector<long long> find_divisors(long long n) {
  vector<long long> v1, v2;
  for (long long i = 1; i * i <= n; i++)
    if (n % i == 0) {
      v1.push_back(i);
      if (i * i != n) v2.push_back(n / i);
    }
  reverse(v2.begin(), v2.end());
  vector<long long> ans;
  for (auto i : v1) ans.push_back(i);
  for (auto i : v2) ans.push_back(i);
  return ans;
}
map<long long, vector<long long> > divisors;
void read() { cin >> x >> k; }
long long cnt_cout = 0;
void dfs(long long x, long long k) {
  if (cnt_cout == 100000) return;
  if (x == 1) {
    cnt_cout++;
    cout << 1 << " ";
    return;
  }
  if (k == 0) {
    cnt_cout++;
    cout << x << " ";
    return;
  }
  for (auto i : divisors[x]) dfs(i, k - 1);
}
void solve() {
  divisors[x] = find_divisors(x);
  for (auto i : divisors[x]) divisors[i] = find_divisors(i);
  dfs(x, k);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  read();
  solve();
}
