#include using namespace std; #define FAST_IO \ ios::sync_with_stdio(false); \ cin.tie(nullptr); #define ll long long #define ull unsigned long long #define ld long double #define yes cout << "YES\n" #define no cout << "NO\n" #define endl '\n' #define pb push_back #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define upb(v, x) ((upper_bound((v).begin(), (v).end(), (x))) - (v).begin()) #define upbit(v, x) (upper_bound((v).begin(), (v).end(), (x))) #define lwb(v, x) ((lower_bound((v).begin(), (v).end(), (x))) - (v).begin()) #define lwbit(v, x) (lower_bound((v).begin(), (v).end(), (x))) #define upbs(ms, x) ((ms).upper_bound(x)) #define lwbs(ms, x) ((ms).upper_bound(x)) #define scan(v, n) \ for (ll i = 0; i < (n); i++) \ cin >> (v)[i] #define rep(i, n) for (ll i = 0; i < (n); i++) #define rep1(i, n) for (ll i = 1; i <= (n); i++) #define rrep(i, n) for (ll i = (n) - 1; i >= 0; i--) #define repr(i, a, b) for (ll i = (a); i <= (b); i++) #define rrepr(i, a, b) for (ll i = (a); i >= (b); i--) #define printv(v) \ for (auto &x : (v)) \ cout << x << " " #define printvp(v) \ for (auto &[a, b] : (v)) \ cout << a << " " << b << " " #define printn(v) \ for (auto &x : (v)) \ cout << x << "\n" #define printi(i, a, b) \ for (ll i = (a); i <= (b); i++) \ cout << i << " " #define findIdx(v, x) ([](const auto &vv, const auto &xx) {auto it = find((vv).begin(), (vv).end(), (xx));return (it != (vv).end() ? (int)(it - (vv).begin()) : -1); }(v, x)) #define findIt(v, x) ([](auto &vv, const auto &xx) { return find((vv).begin(), (vv).end(), (xx)); }(v, x)) typedef vector vll; typedef pair pll; typedef vector vpll; typedef map mll; typedef map mcl; typedef map msl; typedef unordered_map umll; typedef unordered_map umvll; ll gcd(ll a, ll b) { return (b == 0) ? a : gcd(b, a % b); } ll lcm(ll a, ll b) { return a / gcd(a, b) * b; } ll MX = LLONG_MAX; const ll INF = MX / 4; void solve() { ll n, d; cin >> n >> d; ll mxVal = 2 * n * n; umll freq; rep1(x, n) rep1(y, n) freq[x * x + y * y]++; ll cnt = 0; rep1(z, n) { rep1(w, n) { ll val = w * w + d - z * z; if (val >= 0 && val <= mxVal) cnt += freq[val]; } } cout << cnt << endl; } int main() { FAST_IO; solve(); return 0; }