#include #include typedef long long ll; int comp(const void *p1,const void *p2); int main(void){ int N,k,i,j,nowbit=0,nextbit; ll ans=1,a[64]; const ll mod=(ll)1E9+7; scanf("%d%d",&N,&k); for(i=0;i>j&1)==1 && (a[i]>>j&1)==0){ puts("0"); return 0; } } } for(i=0;i<=k;i++){ if(i!=k){ nextbit=0; for(j=0;j>j&1; }else nextbit=N; for(j=1;j<=nextbit-nowbit;j++){ ans*=j; ans%=mod; } nowbit=nextbit; } printf("%lld\n",ans); return 0; } int comp(const void *p1,const void *p2){ ll n1=*(ll *)p1; ll n2=*(ll *)p2; return n1>n2?1:-1; }