import sys input = sys.stdin.read sys.setrecursionlimit(1 << 25) def main(): data = input().split() T = int(data[0]) M = int(data[1]) Ns = list(map(int, data[2:])) maxN = max(Ns) # 前計算: 階乗 fact = [1] * (maxN + 1) for i in range(1, maxN + 1): fact[i] = fact[i - 1] * i % M inv2 = pow(2, M - 2, M) results = [] for N in Ns: res = fact[N] * fact[N] % M res = res * inv2 % M results.append(res) print('\n'.join(map(str, results))) main()