#include <bits/stdc++.h>
using namespace std;
inline void SetIO(string Name) {
  string In = Name + ".in", Out = Name + ".out";
  freopen(In.c_str(), "r", stdin), freopen(Out.c_str(), "w", stdout);
}
const int N = 2000010, Max = 100000;
long long n, k, Div[N];
int Len, Out;
inline void Input() { cin >> n >> k; }
inline void Search(long long x, int Dep) {
  if (Out >= Max) return;
  if (x == 1 || Dep == k) {
    Out++;
    cout << x << ' ';
  } else {
    for (int i = (1); i <= (Len); i++) {
      if (Div[i] > x) break;
      if (x - (x / Div[i]) * Div[i]) continue;
      Search(Div[i], Dep + 1);
    }
  }
}
inline void Solve() {
  Len = 0;
  for (long long i = 1; i * i <= n; i++)
    if (!(n - (n / i) * i)) {
      Div[++Len] = i;
      if (i * i < n) Div[++Len] = n / i;
    }
  sort(Div + 1, Div + 1 + Len);
  if (k >= Max) {
    if (n > 1) {
      for (int i = (1); i <= (Max - 1); i++) printf("1 ");
    }
    puts("1");
  } else {
    Out = 0;
    Search(n, 0);
    puts("");
  }
}
int main() {
  Input();
  Solve();
  return 0;
}
