#include <bits/stdc++.h>
using namespace std;
long long mod = 1000000007LL;
long long large = 2000000000000000000LL;
int main() {
  int t;
  cin >> t >> mod;
  vector<long long> per(401, 1);
  for (long long i = 1; i <= 400; i++) per[i] = i * per[i - 1] % mod;
  vector<long long> I(401, 0);
  I[1] = 1;
  for (long long i = 2; i <= 400; i++) {
    I[i] = per[i];
    for (long long j = 1; j < i; j++) I[i] += mod - I[j] * per[i - j] % mod;
    I[i] %= mod;
  }
  vector<vector<long long> > B(401, vector<long long>(401, 0));
  B[0][0] = 1;
  for (long long i = 1; i <= 400; i++) {
    for (long long j = 1; j <= i; j++) {
      for (long long k = 1; k <= i && i - k >= j - 1; k++) {
        B[i][j] += B[i - k][j - 1] * per[k] % mod;
      }
      B[i][j] %= mod;
    }
  }
  vector<long long> A(401, 0);
  for (long long i = 1; i <= 400; i++) {
    A[i] = per[i];
    for (long long j = 1; j < i; j++) {
      A[i] += mod - I[j] * 2 % mod * per[i - j] % mod;
    }
    A[i] %= mod;
    for (long long j = 3; j < i; j++) {
      A[i] += mod - B[i][j] * A[j] % mod;
    }
    A[i] %= mod;
    if (i == 2) A[i] = 2;
  }
  while (t--) {
    int n;
    cin >> n;
    cout << A[n] << endl;
  }
  return 0;
}
