#include using namespace std; using ll = long long; vector> APBQ; vector> memo; ll N; ll K; int main(){ cin >> K >> N; ll x = 1; ll y = 1; ll x6 = x*x*x*x*x*x; ll y4 = y*y*y*y; set ans; while(x6 < N){ y = 1; y4 = y*y*y*y; while(x6 + y4 <= N){ if ((x6 + y4)%K != 0) { y++; y4 = y*y*y*y; continue; } ll a = (x6 + y4)/K; double s_sqrt = sqrt(a); ll sqrt_low = floor(s_sqrt); ll sqrt_high = ceil(s_sqrt); if (sqrt_low*sqrt_low == a) { ans.insert(x6 + y4); } else if (sqrt_high*sqrt_high == a) { ans.insert(x6 + y4); // cerr << "x6: " << x6 << " y4: " << y4 << " a: " << a << " sqrt_high: " << sqrt_high << endl; } y++; y4 = y*y*y*y; } x++; x6 = x*x*x*x*x*x; } cout << ans.size() << endl; }