function Main(input) {
    input = input.trim().split("\n").map(function(x) { return x.split(" ")});    
    var N = parseInt(input[0][0], 10);
    var vec_ans = Array.from({length: N}, () => 0);

    for (var i = 1; i <= Math.sqrt(N); i++){
        for (var j = i; j >= 1; j--){
            for (var k = j; k >= 1; k--){
                if (i === j && j===k) vec_ans[i * i + j * j + k * k + i * j + j * k + k * i - 1]++;
                else if (i === j || j === k) vec_ans[i * i + j * j + k * k + i * j + j * k + k * i - 1]+=3;
                else vec_ans[i * i + j * j + k * k + i * j + j * k + k * i - 1]+=6;
            }
        }
    }
    vec_ans.length = N;
    console.log(vec_ans.join("\n"));
}

Main(require("fs").readFileSync("/dev/stdin", "utf8")); 