var n,x:qword;
function fenjie(a:qword):qword;
var i:longint;
begin
for i:=2 to trunc(sqrt(a)) do
if a mod i=0 then exit(i);
exit(a);
end;
begin
read(n);
repeat
x:=fenjie(n);
n:=n div x;
write(x,' ');
until n=1;
end.
var n:int64; i,j:longint;
begin
readln(n);
for i:=2 to n div 2 do
begin
if n mod i =0 then
repeat
write(i,' ');
n:=n div i;
until n mod i<>0;
if n=1 then break;
end;
end.
var
a,i:int64;
begin
read(a);
while a<>1 do
begin
i:=2;
while i<=a do
begin
if a mod i=0 then begin
write(i,' ');
a:=a div i;
break;
end;
i:=i+1;
end;
end;
end.
using namespace std;
int main()
{
int n,i=2;
cin>>n;
while(n!=1)
{
while(n%i==0)
{
n/=i;
cout<<i<<" ";
}
i++;
}
return 0;
}