import numpy as np

N, M = map(int, input().split())
dp = np.zeros((N + 1, N ** 2 + 1), dtype=np.int64)
dp[0, 0] = 1
for i in range(2 * N):
    new_dp = np.zeros((N + 1, N ** 2 + 1), dtype=np.int64)
    new_dp[:-1, :] = dp[1:, :]
    for j in range(N):
        if i < j: break
        tmp = (i - j) // 2
        new_dp[j + 1, tmp:] += dp[j, :N ** 2 - tmp + 1]
        new_dp[j + 1, tmp:] %= M
    dp = new_dp
print(*dp[0], sep='\n')