#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define ll long long #define m0(a) memset(a, 0, sizeof(a)) #define m1(a) memset(a, -1, sizeof(a)) #define C1(x) cout<l) { printf("-1\n"); continue; } ll ans=1; ll x,y,z; x=(n-(((k)*(k+1))/2))/(k); y=(n-(((k)*(k+1))/2))-x*k; //printf("%I64d %I64d \n",x,y); for (ll i=1;i<=k-y;i++) { //printf("!@#%I64d\n",x); ans=(ans*(i+x)) % M; //printf("%I64d %I64d %I64d\n",i,x,ans); } for (ll i=k-y+1;i<=k;i++) { //printf("!@#%I64d\n",x); ans=(ans*(i+x+1)) % M; //printf("%I64d %I64d %I64d\n",i,x,ans); } printf("%I64d\n",ans); } return 0; }