process.stdin.resume(); process.stdin.setEncoding("utf-8"); let inputString = ''; let currentLine = 0; process.stdin.on('data', (inputStdin) => { inputString += inputStdin; }) process.stdin.on('end', (_) => { inputString = inputString.trim().split('\n').map(string => { return string.trim(); }); main(); }) function readLine() { return inputString[currentLine++]; } function main() { const [N, M] = readLine().split(' ').map(x => parseInt(x, 10)); const result = new Array(N + 1).fill(0); // Optimization: precompute contributions for (a,b) pairs // a² + ab + ac + ad + b² + bc + bd + c² + cd + d² // = (a² + b²) + (a+b)(c+d) + (c² + d²) for (let a = 0; a <= M; a++) { for (let b = 0; b <= M; b++) { const ab_sum = a * a + a * b + b * b; const ab_coef = a + b; for (let c = 0; c <= M; c++) { for (let d = 0; d <= M; d++) { const cd_sum = c * c + c * d + d * d; const cd_coef = c + d; const value = ab_sum + ab_coef * cd_coef + cd_sum; if (value <= N) { result[value]++; } } } } } console.log(result.join(' ')); }