#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 ;
    }
}
