#include<bits/stdc++.h>
using namespace std;
int x,cntd,d[510];
int cnt,isprime[510],ci[510];//isprime存因数,ci存每个因数出现的次数
void chai(int n){
for(int i=2;i*i<=n;i++){
if(n%i==0){
isprime[++cnt]=i;
while(n%i==0){
n/=i;
ci[cnt]++;
}
}
}
if(n>1){
isprime[++cnt]=n;
ci[cnt]=1;
}
// for(int i=1;i<=cnt;i++) cout<<isprime[i]<<" "<<ci[i]<<endl;
}
void dfs(int p,int n){
if(p>cnt){
d[++cntd]=n;
return;
}
for(int i=0;i<=ci[p];i++){
dfs(p+1,n);
n*=isprime[p];
}
}
int main(){
cin>>x;
chai(x);
dfs(1,1);
sort(d+1,d+1+cntd);
for(int i=1;i<=cntd;i++){
cout<<d[i]<<" ";
}
cout<<endl;
return 0;
}