#include using namespace std; #define rep(i, a, b) for (int i = a; i < b; i++) using ll = long long; int main(){ ll n; cin >> n; vector m3; for(ll i = 1; i * i * i <= n; i++) m3.emplace_back(i * i * i); int sz = m3.size(); vector s(sz + 1); rep(i, 0, sz) s[i + 1] = s[i] + m3[i]; int r = 0; vector lv, rv; rep(l, 0, sz + 1) { while(r < sz + 1 && s[r] - s[l] < n) r++; if(r == sz + 1) break; if(s[r] - s[l] == n) lv.push_back(l), rv.push_back(r); } int c = lv.size(); cout << c << endl; rep(i, 0, c) cout << lv[i] + 1 << " " << rv[i] << endl; }