#include <iostream>
//#include <stdio.h>
#include <cmath>

using namespace std;

int main()
{
    //众所周知暴力***超时
    //n的值肯定会随着循环的进行减少
    //如果i循环到了n开方都没有找到质因子,那么质因子肯定是其本身
    //也就是n不可能存在两个比n开方大的质因子

    long n;
    while(cin>>n)
    {
        long i = 2;
        for(i;i<(long)(sqrt(n)+1);)
        {
            while(n%i==0)
            {
                cout<<i<<' ';
                n/=i;
            }
            i++;
        }
        if(n>1)
        {
            cout<<n<<' ';
        }
        cout<<endl;
    }

    return 0;
}