N, M = map(int, input().split())
X = N*(N+1)//2
dp = [[0]*(X+1) for _ in range(N+1)]
dp[0][0] = 1

for i in range(2*N):
    ndp = [[0]*(X+1) for _ in range(N+1)]
    
    for j in range(N+1):
        zero = j
        one = i-zero
        
        for k in range(X+1):
            if zero<N and k+one<=X:
                ndp[j+1][k+one] += dp[j][k]
                ndp[j+1][k+one] %= M
            
            if zero>one:
                ndp[j][k] += dp[j][k]
                ndp[j][k] %= M
    
    dp = ndp
    
for K in range(N*N+1):
    if K<=X:
        print(dp[N][K])
    else:
        print(0)