#include using namespace std; #define rep(i, n) for (int i = 0; i < (n); ++i) using ll = long long; using ull = unsigned long long; inline ll cube(ll x) { return x * x * x; } int main() { cin.tie(nullptr)->sync_with_stdio(false); ll n; cin >> n; vector> ans; ll r = 1, sum = 0; for (ll l = 1; l <= 1'000'000; ++l) { while (sum + cube(r) <= n) sum += cube(r++); if (sum == n) ans.push_back({ l, r - 1 }); sum -= cube(l); } cout << ans.size() << '\n'; for (auto [l, r] : ans) cout << l << ' ' << r << '\n'; return 0; }