func_code_string: #include<bits/stdc++.h>   #define int long long   #define pii pair<int,int>   #define F first   #define S second   #define pi acos(-1.0)   #define pb push_back   #define sf(x) scanf( %lld ,&x)   #define pf(x) printf( %lld ,&x)   using namespace std;   const int mod=1e9+7;   int a1[2000],ar[2000],ff[2000] ;   map<int,int>mp,mk ;   int bigmod(int a , int b)   {       if(b==0) return 1 ;       int x = bigmod(a,b/2) ;       x=((x%mod)*(x%mod))%mod ;       if(b%2) x=((x%mod)*(a%mod))%mod ;       return x ;   }   int ncr(int a , int b)   {       int p=(ff[a-b]*ff[b])%mod ;       p=(ff[a]*bigmod(p,mod-2)) ; p%=mod ;       return p ;   }   int32_t main()   {       ios_base::sync_with_stdio(0) ; cin.tie(0) ; cout.tie(0) ;       ff[0]=1 ; ff[1]=1 ;       for(int i = 2 ; i <= 1000 ; i++) ff[i]=(ff[i-1]*i)%mod ;       int t ; cin>>t ;       while(t--)       {           int n,k,mx=0 ; cin>>n>>k ; mp.clear() ; mk.clear() ;           set<int>st ;           for(int i = 1 ; i <= n ; i++){cin>>ar[i] ; mp[ar[i]]++ ; a1[i]=ar[i] ; }           sort(a1+1,a1+n+1) ; reverse(a1+1,a1+n+1) ;          // for(int i = 1 ; i <= n ; i++) cout<<a1[i]<<    ; cout<<endl ;           for(int i = 1 ; i <= k ; i++) {mx+=a1[i] ; st.insert(a1[i]) ; mk[a1[i]]++ ;}           int ans=1 ;           for(int x : st)           {               int p=mp[x],q=mk[x] ;             //  cout<<x<<   <<p<<   <<q<<endl ;               ans*=ncr(p,q); ans%=mod ;           }           cout<<ans<<endl ;       }   }   