#include <bits/stdc++.h>
using namespace std;
const int maxn = 2 * 1e5 + 100;
vector<int> Prime;
int main() {
  Prime.clear();
  int n, k;
  scanf("%d%d", &n, &k);
  int flag = 1;
  for (int i = 2; flag && i <= n; i++) {
    if (n % i == 0) {
      while (n % i == 0) {
        Prime.push_back(i);
        n /= i;
      }
      if (n == 1) {
        flag = 0;
      }
      if (n < i && n > 1) {
        flag = 0;
        Prime.push_back(n);
      }
    }
  }
  if (Prime.size() < k) {
    cout << -1 << endl;
  } else {
    for (int i = 0; i < k - 1; i++) {
      cout << Prime[i] << " ";
    }
    int ans = 1;
    for (int i = k - 1; i < Prime.size(); i++) {
      ans *= Prime[i];
    }
    if (ans != 1) {
      cout << ans << endl;
    }
  }
  return 0;
}
