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')