#include<vector>
#include<math.h>
using namespace std;
int isPrime(int n){
if(n<2){
return 0;
}
if(n==2){
return 1;
}
for(int i=2;i<=sqrt(n);i++){
if(n%i==0){
return 0;
}
}
return 1;
}
int main(){
int n;
cin>>n;
int scope=n;
if(isPrime(n)==1){
cout<<n<<" ";
}
else{
for(int i=2;i<=sqrt(scope);i++){
while(n%i==0){//没必要判断i是不是质数,如果i是合数,那一定存在比它小的质数之前已经除过了
n/=i;
cout<<i<<" ";
}
}
if(isPrime(n)==1)cout<<n;
}
}