#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; bool rcmp(int a, int b) { return a>b; } typedef long long LL; class mypcmp { public: bool operator()(const int& a, const int& b) { return a>=1; } return r; } int main() { int n, i,q , j, k, relax; int s1, e1, s2, e2, s, e, c; LL r, t, t2; scanf("%d %d", &n, &q); k=0; sg[k].s=1; sg[k].e=n; if (n&1) sg[k].e++; k++; for (i=0; i=0; j--) { s1=sg[j].s; e1=sg[j].e; s2=sg[i].s; e2=sg[i].e; if (s1>e2||e1s2&&e1s1&&e2s2) { t=s1; s1=s2; s2=t; t=e1; e1=e2; e2=t; } if (s1==s2) { if (e1e1) break; if (sg[j].e>e2) { c-=(sg[j].e-sg[j].s+1); e2=sg[j].e; } } // C(c, c/2)-C(c, c/2-1); t=ft[c]; t*=ift[c/2]; t%=MOD; t*=ift[c/2]; t%=MOD; t2=ft[c]; t2*=ift[c/2-1]; t2%=MOD; t2*=ift[c/2+1]; t2%=MOD; t-=t2; if (t<0) t+=MOD; r*=t; r%=MOD; } r*=ft[n/2]; r%=MOD; r*=ft[(n+1)/2]; r%=MOD; printf("%lld\n", r); return 0; }