#include <bits/stdc++.h>
using namespace std;
const long long inf = 1000000007;
const int sz = 100100;
long long n, k;
long long p[sz];
vector<long long> v, r;
int main() {
  for (int i = 2; i < sz; ++i) {
    if (p[i]) continue;
    v.push_back(i);
    for (int j = i * 2; j < sz; j += i) p[i] = 1;
  }
  long long w;
  cin >> n >> k;
  w = n;
  int ind = 0;
  while (ind < v.size() && r.size() < k - 1 && n >= v[ind]) {
    while (n >= v[ind] && (n % v[ind]) == 0 && r.size() < k - 1) {
      r.push_back(v[ind]);
      n /= v[ind];
    }
    ++ind;
  }
  r.push_back(n);
  long long t = 1;
  for (int i = 0; i < r.size(); ++i) {
    t *= r[i];
  }
  if (t != w) return -1;
  if (n == 1 || r.size() < k) {
    cout << -1;
    return 0;
  }
  for (int i = 0; i < k; ++i) {
    cout << r[i] << " ";
  }
  return 0;
}
