#include<bits/stdc++.h>
#define ll long long
const ll MOD=1e9+7;
const ll M2=676767677;
using namespace std;
unordered_map<ll,int> mp;
ll n;
vector<ll> f,ans;
ll con(ll x,ll y){
return ((((((x*M2)+y)%MOD)*67676767LL)%MOD)*MOD)%M2;
}
void dfs(ll now,ll sum){
if(mp[con(now,sum)]) return;
mp[con(now,sum)]=1;
if(now==n){
ans.push_back(sum);
return;
}
for(auto x:f){
if(now*x>n) break;
dfs(now*x,sum+(x-1));
}
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cin>>n;
for(int i=1;i<=sqrt(n);i++){
if(n%i) continue;
f.push_back(i);
if(n/i!=i) f.push_back(n/i);
}
sort(f.begin(),f.end());
dfs(1,0);
sort(ans.begin(),ans.end());
ans.erase(unique(ans.begin(),ans.end()),ans.end());
cout<<ans.size() <<"\n";
for(auto x:ans) cout<<x <<" ";
}