#include using namespace std; typedef signed long long ll; #undef _P #define _P(...) (void)printf(__VA_ARGS__) #define FOR(x,to) for(x=0;x>T; while(T--) { ll N,M; cin>>N>>M; if(N>=M) { _P("0\n"); continue; } if(N<=10000) { ll a=1; for(i=1;i<=N;i++) a=(a*i)%M; _P("%lld\n",a%M); continue; } ll pp; for(pp=2;pp*pp<=M;i++) if(M%pp==0) break; if(M%pp) { ll a=1; for(i=1;i<=M-N;i++) a=(a*i)%M; _P("%lld\n",(M-a)%M); } else { if(N>=M/2) { _P("0\n"); } else { ll a=1; for(i=1;i<=N;i++) a=(a*i)%M; _P("%lld\n",a); } } } } int main(int argc,char** argv){ string s;int i; if(argc==1) ios::sync_with_stdio(false); FOR(i,argc-1) s+=argv[i+1],s+='\n'; FOR(i,s.size()) ungetc(s[s.size()-1-i],stdin); solve(); return 0; }