#include int main(){ int N; long long D; std::cin>>N>>D; std::map mp1; for(long long x=1;x<=N;++x){ for(long long y=1;y<=N;++y){ if(mp1.find(x*x+y*y)==mp1.end()){ mp1[x*x+y*y]=1; }else{ ++mp1[x*x+y*y]; } } } long long ans=0; for(long long z=1;z<=N;++z){ for(long long w=1;w<=N;++w){ if(mp1.find(w*w+D-z*z)!=mp1.end()){ ans +=mp1[w*w+D-z*z]; } } } std::cout<