local mfl, mce = math.floor, math.ceil local mmi = math.min local n, d = io.read("*n", "*n") local sq = {} local box = {} for i = 1, 2 * n * n do box[i] = 0 end for i = 1, n do sq[i] = i * i box[2 * sq[i]] = 1 end for i = 1, n - 1 do for j = i + 1, n do box[sq[i] + sq[j]] = box[sq[i] + sq[j]] + 2 end end local cnt = 0 for w = 1, n do local w2d = d + sq[w] for z = 1, n do local tgt = w2d - sq[z] if tgt <= 0 then break elseif tgt <= 2 * n * n then cnt = cnt + box[tgt] end end end print(cnt)