include

include

include

include

include

bool is_prime(long v)
{
long i;
long count = 0;
for(i=1; i<=v; i++)
{
if(v%i == 0)
{
count++;
}
if(count > 2)
{
return false;
}
}
return true;
}

void judge_prime_elem(long i, long & input, std::vector<long> &v)
{
if(input % i == 0)
{
v.push_back(i);
input = input/i;
judge_prime_elem(i, input, v);
}
}</long>

int main()
{
using namespace std;
long input;
vector<long> v;
cin >> input;</long>

long i;
long temp = input;
for(i=2; i<= sqrt(input); i++)
{
    if(is_prime(i))
    {
        judge_prime_elem(i, input, v);
    }
}

if(input > 1)
{
    v.push_back(input);
}

sort(v.begin(), v.end());
vector<long>::iterator it;
for(it=v.begin(); it!=v.end();it++)
{
    cout << *it << " ";
}
cout << endl;
return 0;

}