#include<stdio.h>
#include<math.h>

double abs(double a)
{
    if(a>=0) return a;
    return -a;
}
double f(double a, double b, double c, double d)
{
    return sqrt((abs(a-c)*abs(a-c)) + (abs(b-d) * abs(b-d)));
}
long long int gcd(long long int a, long long int b)
{
    if( a == 0 ) return b;
    return gcd(b%a, a);
}
long long int max(long long int a, long long int b)
{
    if(a>b) return a;
    return b;
}
int main(void)
{
    long long int n, i, a, b, c, d, t, f=1;
    FILE *in, *out;
    for( t = 4 ; t <= 4 ; t++ )
    {
        char fn[100], fn2[100];
        sprintf(fn,".%d.in",t);
        sprintf(fn2,".%d.out",t);
        in=fopen(fn,"w"), out=fopen(fn2,"w");
        scanf("%lld",&n);   // a cm¿¡ b %ÀÌ´Ù. (a´Â 100ÀÇ ¹è¼ö, b´Â Á¤¼ö) 
        fprintf(in,"%lld\n",n);
        while(n!=1)
        {
            for( i = 2, f = 1 ; i*i <= n ; i++ )
            {
                 while( n%i==0 )
                 {
                      printf("%lld ", i);
                      fprintf(out,"%lld ", i);
                      n/=i;
                      f = 0;
                 }
                 if( f ) printf("%lld ", n), fprintf(out,"%lld ", n), n=1;
                    
            }
        }
        fclose(in); fclose(out);
    }
    return 0;
}
