#include <bits/stdc++.h>
using namespace std;
vector<int> vi;
void primefact(int n) {
  while (n % 2 == 0) {
    vi.push_back(2);
    n /= 2;
  }
  int i = 3;
  while (i <= n) {
    while (n % i == 0) {
      vi.push_back(i);
      n /= i;
    }
    i += 2;
  }
  if (n > 2) vi.push_back(n);
}
int main() {
  int n, k, last = 1, i;
  cin >> n >> k;
  primefact(n);
  if (k > vi.size())
    cout << "-1" << endl;
  else {
    for (i = 0; i < k - 1; i++) cout << vi[i] << " ";
    for (i = k - 1; i < vi.size(); i++) last *= vi[i];
    cout << last;
  }
  return 0;
}
