#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const int M = 100005;
const int MOD = 1e9 + 7;
long long c[100005], x, k, tot = 0;
vector<long long> son[100005];
void dfs(int n, int m) {
  if (tot >= 100000) return;
  if (n == 0 || m == 0) {
    printf("%I64d ", c[n]);
    ++tot;
    return;
  }
  for (int v : son[n]) dfs(v, m - 1);
}
int main() {
  cin >> x >> k;
  if (k == 0) {
    printf("%I64d\n", x);
    return 0;
  }
  int top = 0;
  for (int i = 1; i * 1ll * i < x; ++i) {
    if (x % i == 0) {
      c[top++] = i;
      c[top++] = x / i;
    }
  }
  if (sqrt(x) * sqrt(x) == x) c[top++] = sqrt(x);
  sort(c, c + top);
  for (int i = 0; i < top; ++i)
    for (int j = 0; j <= i; ++j)
      if (c[i] % c[j] == 0) son[i].push_back(j);
  dfs(top - 1, k);
  return 0;
}
