#include <bits/stdc++.h>
using namespace std;
void Solved() {
  int n, k;
  cin >> n >> k;
  vector<pair<int, int> > primefactor;
  int m = n;
  int Total = 0;
  for (int i = 2; i <= sqrt(m); i++) {
    if (m % i == 0) {
      int Count = 0;
      while (m % i == 0) {
        Count++;
        m /= i;
      }
      Total += Count;
      primefactor.push_back(make_pair(i, Count));
    }
  }
  if (m > 1) {
    Total++;
    primefactor.push_back(make_pair(m, 1));
  }
  if (k > Total) {
    cout << "-1" << endl;
    return;
  }
  vector<int> ans;
  k--;
  int keep = 1;
  for (int i = 0; i < primefactor.size(); i++) {
    int tem = primefactor[i].second;
    while (tem) {
      if (k > 0) {
        keep *= primefactor[i].first;
        ans.push_back(primefactor[i].first);
        k--;
        tem--;
      } else {
        break;
      }
    }
  }
  ans.push_back(n / keep);
  for (int i = 0; i < ans.size(); i++) {
    cout << ans[i] << " ";
  }
  cout << endl;
}
int main() {
  Solved();
  return 0;
}
