#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define MOD (long long int)(1e9+7) #define ll long long int #define rep(i,n) for(int i=0; i<(int)(n); i++) #define reps(i,n) for(int i=1; i<=(int)(n); i++) #define REP(i,n) for(int i=n-1; i>=0; i--) #define REPS(i,n) for(int i=n; i>0; i--) #define INF (int)(1123456789) #define LINF (long long int)(112345678901234567) int main(void){ ll n,d; cin>>n>>d; vector xy,zw; reps(i,n){ reps(j,n){ xy.push_back(i*i+j*j); zw.push_back(i*i-j*j+d); } } sort(xy.begin(),xy.end()); sort(zw.begin(),zw.end()); int xi=0,zi=0; ll ans = 0; while(xi < n*n && zi < n*n){ ll memo = 0; for(;zi < n*n && zw[zi] <= xy[xi];zi++){ if(zw[zi] == xy[xi]){ memo++; } } ll memo2 = 1; for(;xi+1 < n*n && xy[xi] == xy[xi+1];){ xi++; memo2++; } ans += memo * memo2; xi++; } cout<