#include #include long long mod=1000000007; long long dp[61]; typedef struct { int b[61]; } bits; bits bit[61]; int check[60]; int cmp(const void*a,const void*b){ return ((bits*)a)->b[60]-((bits*)b)->b[60]; } 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]>0) 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,bitsum; long long a,ans; scanf("%d %d",&n,&k); for(i=0;i