#include <bits/stdc++.h>
using namespace std;
int s[10000], n, m, cnt;
char a[10000];
bool f;
void ff() {
  if (cnt == m - 1 && n >= 2) {
    s[m - 1] = n;
    n = 0;
    f = true;
    return;
  }
  if (n < 2) return;
  for (int i = 2; i <= sqrt(n); i++) {
    if (n % i == 0) {
      n /= i;
      s[cnt] = i;
      cnt++;
      ff();
    }
  }
  return;
}
int main() {
  int i, j, N;
  int d;
  while (~scanf("%d%d", &n, &m)) {
    if (m == 1) {
      printf("%d\n", n);
      continue;
    }
    memset(s, 0, sizeof(s));
    cnt = 0;
    f = false;
    ff();
    if (f) {
      printf("%d", s[0]);
      for (i = 1; i <= cnt; i++) printf(" %d", s[i]);
      puts("");
    } else
      puts("-1");
  }
  return 0;
}
