直接上代码
#include<set>
#include<map>
#include<stack>
#include<cmath>
#include<queue>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include <stdio.h>
#include <string.h>
using namespace std;
typedef long long ll;
//const int mod = 1e9 + 7;
ll ksm(ll a, ll b,ll mod) {//求逆元
ll s = 1;
while (b) {
if (b & 1) {
a %= mod;
s %= mod;
s *= a;
}
a %= mod;
a *= a;
b >>= 1;
}
return s % mod;
}
int main()
{
ll n, p;
while (cin >> n >> p)
{
ll sum = 1;
for (int i = 2; i <= n; i++)
sum = (sum * i) % p;
cout << ksm(sum, p - 2, p) % p << endl;
}
}