#include <bits/stdc++.h>
using namespace std;
#define forsn(i, s, n) for (int i = int(s); i < int(n); i++)
#define forn(i, n) forsn(i, 0, n)
#define dforsn(i, s, n) for (int i = int(n) - 1; i >= int(s); i--)
#define dforn(i, n) dforsn(i, 0, n)
using vi = vector<int>;
using ii = pair<int, int>;
using vii = vector<ii>;
using ll = long long;
using ld = long double;
using vll = vector<ll>;
using vb = vector<bool>;
using pll = pair<ll, ll>;
#define sz(x) int(x.size())
#define all(x) begin(x), end(x)
#define pb push_back
#define eb emplace_back
#define fst first
#define snd second
int main() {
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n;
cin >> n;
vi l, r;
for (int d = 1; d * d <= n; d++) {
if (n % d == 0) {
l.pb(d);
if (d * d != n) r.pb(n / d);
}
}
reverse(all(r));
vi divisors = l;
divisors.insert(end(divisors), all(r));
vector<vi> sums(sz(divisors));
sums[0] = {0};
forn(i, sz(divisors)) {
forsn(j, 1, sz(divisors)) {
if (divisors[i] % divisors[j] == 0) {
int divisors_k = divisors[i] / divisors[j];
int k = int(lower_bound(all(divisors), divisors_k) - begin(divisors));
for (int x : sums[k]) sums[i].pb(x + divisors[j] - 1);
}
}
sort(all(sums[i]));
sums[i].erase(unique(all(sums[i])), end(sums[i]));
}
cout << sz(sums.back()) << "\n";
for (int x : sums.back()) cout << x << " ";
cout << "\n";
return 0;
}