#include <bits/stdc++.h>
using namespace std;
const long double PI = acos(-1.0);
map<long long, vector<long long> > fac;
long long x, k;
vector<long long> ans;
void dfs(long long num, long long level) {
  if ((long long)ans.size() == 1e5) {
    return;
  }
  if (level == k) {
    ans.push_back(num);
    return;
  }
  for (long long i : fac[num]) {
    dfs(i, level + 1);
  }
}
void solve() {
  cin >> x >> k;
  if (x == 1) {
    cout << 1 << '\n';
    return;
  }
  vector<long long> f;
  for (long long i = 1; i * i <= x; ++i) {
    if (x % i == 0) {
      f.push_back(i);
      f.push_back(x / i);
    }
  }
  sort(f.begin(), f.end());
  f.resize(unique(f.begin(), f.end()) - f.begin());
  for (long long i = 0; i < (long long)f.size(); ++i) {
    for (long long j = i; j < (long long)f.size(); ++j) {
      if (f[j] % f[i] == 0) {
        fac[f[j]].push_back(f[i]);
      }
    }
  }
  if (k >= 500) {
    if ((long long)f.size() == 2) {
      for (long long i = 0; i < min(k, 100000LL); ++i) {
        ans.push_back(1);
      }
      ans.push_back(x);
      for (long long i = 0; i < min(100000LL, (long long)ans.size()); ++i) {
        cout << ans[i] << ' ';
      }
      cout << '\n';
      return;
    } else {
      for (long long i : f) {
        if (i == 1) {
          ans.push_back(1);
        } else if ((long long)fac[i].size() == 2) {
          for (long long j = 0; j < min(100000LL, k - 1); ++j) {
            ans.push_back(1);
          }
          ans.push_back(i);
        } else {
          while ((long long)ans.size() < 1e5) {
            for (long long j : fac[i]) {
              if (j == 1)
                ans.push_back(1);
              else if ((long long)fac[j].size() == 2) {
                for (long long j = 0; j < min(100000LL, k - 2); ++j) {
                  ans.push_back(1);
                }
                ans.push_back(j);
              } else
                break;
            }
            --k;
          }
          break;
        }
      }
    }
    for (long long i = 0; i < 100000; ++i) {
      cout << ans[i] << ' ';
    }
    cout << '\n';
    return;
  }
  dfs(x, 0);
  for (long long i : ans) {
    cout << i << ' ';
  }
  cout << '\n';
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long t = 1;
  while (t--) {
    solve();
  }
  return 0;
}
