n,d=gets.split(" ").map{|e| e.to_i} hs={} hs2={} 1.upto(n){|x| x.upto(n){|y| t=x**2+y**2 hs[t]=0 if hs.member?(t)==false hs[t]+=(x==y)?(1):(2) t2=d+(x+y)*(x-y) hs2[t2]=0 if hs2.member?(t2)==false hs2[t2]+=1 next if x==y t2=d+(y-x)*(x+y) hs2[t2]=0 if hs2.member?(t2)==false hs2[t2]+=1 } } ans=0 hs.each{|k,v| next if hs2.member?(k)==false ans+=v*hs2[k] } puts ans