'use strict'; process.stdin.resume(); process.stdin.setEncoding('utf-8'); let input = ''; process.stdin.on('data', chunk => input += chunk); process.stdin.on('end', () => { main(input.trim().split(/\s+/).map(Number)); }); function main([N, M]) { let freq = new Map(); // Step 1: count all a,b contributions for (let a = 0; a <= M; a++) { for (let b = 0; b <= M; b++) { let sum = a*a + a*b + b*b; freq.set(sum, (freq.get(sum) || 0) + 1); } } // Step 2: for each c,d compute sums and combine let result = Array(N+1).fill(0); for (let c = 0; c <= M; c++) { for (let d = 0; d <= M; d++) { let cdSum = c*c + c*d + d*d; for (let [abSum, count] of freq.entries()) { let total = abSum + cdSum; if (total <= N) { result[total] += count; } } } } console.log(result.join('\n')); }