#include <bits/stdc++.h>
using namespace std;
long long num;
int cnt = 0;
long long di[14000];
void get1(long long x) {
  num = 0;
  long long temp = sqrt(x + 0.5);
  for (int i = 1; i <= temp; i++) {
    if (x % i == 0) {
      di[++num] = i;
      if ((x / i) != i) di[++num] = x / i;
    }
  }
  sort(di + 1, di + num + 1);
}
void dfs(long long x, long long k) {
  if (cnt >= 1e5) return;
  if (x == 1 || k == 0) {
    printf("%I64d ", x);
    cnt++;
    return;
  }
  for (int i = 1; i <= num; i++) {
    if (x < di[i]) break;
    if (x % di[i] == 0) {
      dfs(di[i], k - 1);
    }
  }
}
int main() {
  long long x, k;
  cin >> x >> k;
  get1(x);
  dfs(x, k);
}
