N, M = map(int, input().split()) dp = [[0]*(N**2+1) for _ in range(N+1)] dp[0][0] = 1 for i in range(1,2*N+1): nex = [[0]*(N**2+1) for _ in range(N+1)] for j in range(min(i,N)+1): if j>i-j:break for k in range(min(i**2,N**2)+1): if j+1<=N and j+1<=i-j-1: nex[j+1][k] += dp[j][k] nex[j+1][k] %= M if k+j<=N**2: nex[j][k+j] += dp[j][k] nex[j][k+j] %= M dp = nex for i in range(N**2+1): print(dp[-1][i])