#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;
    }
}