// PRIME FACTORISATION USING PRIME SIEVE
#include
using namespace std;
int* prime_sieve(int* a)
{
int* A=new int[1000005]{-1};
A[0]=2;
int k=1;
for(int i=3;i<=1000000;i+=2)
a[i]=1;
for(int i=3;i<=1000000;i+=2)
{
if(a[i]==1)
{
A[k++]=i;
for(int j=ii;j<=1000000;j+=i)
a[j]=0;
}
}
a[0]=a[1]=0;
a[2]=1;
return A;
}
void find_primeFactors(int A,int n)
{
for(int i=0;A[i]!=-1;i++)
{
while(n % A[i]==0)
{
cout<<A[i]<<" ";
n=n/A[i];
}
}
}
int main()
{
int a[1000005]={0};
int* A=prime_sieve(a);
int n;
cin>>n;
find_primeFactors(A,n);
return 0;
}