#include using namespace std; using ll = long long; int main(){ ios::sync_with_stdio(false); cin.tie(0); int A; cin >> A; vector> tb(333), c(333), tb2(333); vector pow4(4445), pow3(4445); for(ll i = 1; i <= 4444; i++){ pow4[i] = i * i * i * i; pow3[i] = (i * i * i) % 333; } ll v = pow4[4444]; for(ll i = 1; i <= 4444; i++){ c[pow3[i]].push_back(pow4[i]); for(ll j = 1; j <= 4444; j++){ ll v2 = pow4[i] + pow4[j]; if(v2 > v) break; ll v3 = pow3[i] + pow3[j]; if(v3 >= 333)v3 -= 333; tb[v3].push_back(v2); if(i == j){ tb2[v3].push_back(v2); } } } ll ans = 0; for(int i = 0; i < 333; i++){ sort(tb[i].begin(), tb[i].end()); for(int i2 = 0; i2 < 333; i2++){ if((i + i2) % 333 != A)continue; for(int j = int(tb[i].size()) - 1, k = 0; j >= 0; j--){ while(k < c[i2].size() && c[i2][k] + tb[i][j] <= v)k++; ans += k; } } } /*for(int i = 0; i < 333; i++){ for(int i2 = 0; i2 < 333; i2++){ if((i + i2) % 333 != A)continue; for(int j = int(tb2[i].size()) - 1, k = 0; j >= 0; j--){ while(k < c[i2].size() && c[i2][k] + tb2[i][j] <= v)k++; ans -= k; } } } for(int i = 1; i <= 4444; i++){ if((3 * pow3[i]) % 333 != A)continue; ans += (3 * pow4[i] <= v); }*/ cout << ans << '\n'; }