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