#include #define pll pair #define pld pair typedef long long ll; typedef long double ld; typedef int praise_long_long; namespace io { using namespace std; inline ll read () { char x=getchar(); ll ans=0,f=1; while (x<'0'||x>'9') { if (x=='-') { f*=(-1); } x=getchar(); } while (x>='0'&&x<='9') { ans*=10; ans+=(x-'0'); x=getchar(); } return ans*f; } void print (ll x) { if (x<0) { x=-x; putchar('-'); } if (x>=10) { print(x/10); } putchar(x%10+'0'); } } using namespace io; const ll N=2e3+5,mod=1e9+7,inf=2e18; const ld eps=1e-6; ll n,k,a[N],num[N*N*2],ans; inline void solve () { n=read(),k=read(); for (ll i=1;i<=n;i++) { a[i]=i*i; } for (ll i=1;i<=n;i++) { num[a[i]*2]++; for (ll j=i+1;j<=n;j++) { num[a[i]+a[j]]+=2; } } for (ll a=1;a<=n;a++) { for (ll d=1;d<=n;d++) { ll kl=d*d+k-a*a; if (kl<0) { continue; } ans+=num[kl]; } } print(ans); } praise_long_long main () { // freopen("alive.in","r",stdin); // freopen("alive.out","w",stdout); ll T=1; // T=read(); while (T--) { solve(); } return 0; } /**/