#include using namespace std; int main(){ long long n, d; cin >> n >> d; long long ans = 0; unordered_map mp; long long mi = LLONG_MAX; long long ma = 0; for(long long i = 1;i <= n;i++){ for(long long j = 1;j <= n;j++){ if(i*i-j*j+d > 0 && i*i-j*j+d <= n*n+n*n){ mp[i*i-j*j+d]++; ma = max(ma, i*i-j*j+d); mi = min(mi, i*i-j*j+d); } } } for(long long i = 1;i <= n;i++){ for(long long j = 1;j <= n;j++){ if(i*i+j*j < mi) continue; if(i*i+j*j > ma) break; ans += mp[i*i+j*j]; } } cout << ans << endl; return 0; }