#include <iostream>
#include <vector>
#include <set>
#include <algorithm>
using namespace std;
signed main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
// freopen("input.txt", "r", stdin);
int n;
cin >> n;
vector<int> divisors;
for (int d = 1; d * d <= n; d++) {
if (n % d == 0) {
divisors.push_back(d);
if (d * d < n) {
divisors.push_back(n / d);
}
}
}
sort(divisors.begin(), divisors.end());
vector<set<int>> dp(divisors.size());
dp[0] = {0};
for (int i = 1; i < divisors.size(); i++) {
for (int j = 0; j < i; j++) {
if (divisors[i] % divisors[j]) continue;
int x = divisors[i] / divisors[j] - 1;
for (int s : dp[j]) {
dp[i].insert(s + x);
}
}
}
cout << dp.back().size() << '\n';
for (int s : dp.back()) {
cout << s << ' ';
}
return 0;
}