import sys sys.setrecursionlimit(10**6) int1 = lambda x: int(x)-1 p2D = lambda x: print(*x, sep="\n") def II(): return int(sys.stdin.buffer.readline()) def MI(): return map(int, sys.stdin.buffer.readline().split()) def MI1(): return map(int1, sys.stdin.buffer.readline().split()) def LI(): return list(map(int, sys.stdin.buffer.readline().split())) def LI1(): return list(map(int1, sys.stdin.buffer.readline().split())) def LLI(rows_number): return [LI() for _ in range(rows_number)] def BI(): return sys.stdin.buffer.readline().rstrip() def SI(): return sys.stdin.buffer.readline().rstrip().decode() dij = [(0, 1), (-1, 0), (0, -1), (1, 0)] inf = 10**16 # md = 998244353 md = 10**9+7 n, m = MI() ans = [0]*(n+1) for a in range(m+1): s1 = a**2 if s1 > n: break for b in range(a+1): s2 = s1+b*(a+b) ab = a == b if s2 > n: break for c in range(b+1): s3 = s2+c*(a+b+c) bc = b == c if s3 > n: break for d in range(c+1): s4 = s3+d*(a+b+c+d) cd = c == d if s4 > n: break abcd = ab+bc+cd if abcd == 0: cur = 24 elif abcd == 3: cur = 1 elif abcd == 1: cur = 12 elif ab and cd: cur = 6 else: cur = 4 ans[s4] += cur print(*ans, sep="\n")