#include <bits/stdc++.h>
using namespace std;
long long fact[250007];
long long mod = 993244853;
long long mul(long long x, long long y) { return (x * y) % mod; }
void calculateFact() {
  fact[0] = 1;
  for (long long i = 1; i < 250007 - 3; i++) {
    fact[i] = mul(fact[i - 1], i);
  }
}
long long add(long long x, long long y) { return (x + y) % mod; }
int main(int argc, char** argv) {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long T = 1;
  while (T--) {
    long long n;
    cin >> n >> mod;
    calculateFact();
    long long ans = 0;
    for (long long i = 1; i < n + 1; i++) {
      long long x = mul(n - i + 1, fact[n - i + 1]);
      long long y = fact[i];
      long long z = mul(x, y);
      ans = add(ans, z);
    }
    cout << ans << '\n';
  }
  return 0;
}
