#include #include #include long long mod=1000000007; long long dp[62]; typedef struct { int b[62]; } bits; int cmp(const void*a,const void*b){ return ((bits*)a)->b[61]-((bits*)b)->b[61]; } int bitcheck(long long a,bits* b,int c){ if(a%2==1){ a--; b->b[c]=1; }else{ b->b[c]=0; } if(a==0) return; bitcheck(a/2,b,c+1); } long long kaijo(int a){ if(dp[a]>0LL) return dp[a]; if(a==0) return dp[0]=1; return dp[a]=(long long)a*kaijo(a-1)%mod; } int main(){ int n,k,i,j,check[60],bitsum; bits bit[61]; long long a,ans; memset(bit,0,sizeof(bit)); scanf("%d %d",&n,&k); for(i=0;i