#include <bits/stdc++.h>
using namespace std;
vector<long long int> ans;
vector<long long int> allD;
unordered_map<long long int, int> comp;
const int MM = 1e4;
const int LIM = 1e5;
vector<long long int> gr[MM];
void solve(long long int N, long long int K) {
  if (K == 0 || N == 0) {
    ans.push_back(N);
    return;
  }
  for (long long int u : gr[N]) {
    solve(u, K - 1);
    if (ans.size() == LIM) {
      return;
    }
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long int N, K;
  cin >> N >> K;
  for (long long int i = 1; i * i <= N; i++) {
    if (N % i == 0) {
      allD.push_back(i);
      if (i * i != N) {
        allD.push_back(N / i);
      }
    }
  }
  sort(allD.begin(), allD.end());
  for (int i = 0; i < allD.size(); i++) {
    for (int j = 0; j <= i; j++) {
      if (allD[i] % allD[j] == 0) {
        gr[i].push_back(j);
      }
    }
  }
  K = min(K, (long long int)LIM);
  solve(allD.size() - 1, K);
  for (auto u : ans) {
    cout << allD[u] << ' ';
  }
  return 0;
}
