#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 6e5+10;
const int mod = 1e9+7;

ll a[N];
int n,k;
ll fac[N];
ll inv[N];

ll qpow(ll a,ll b,ll p)
{
    ll res = 1;
    for(;b;b>>=1)
    {
        if(b&1)
        {
            res =  res*a%p;
        }
        a = a*a%p;
    }
    return res;
}

ll C(ll n,ll m)
{
    return fac[n]*inv[m]%mod*inv[n-m]%mod;
}



void solve()
{
    cin>>n>>k;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    sort(a+1,a+1+n);
    ll d = k/2;
    ll res = 0;
    for(int i=d+1;i<=n&&n-i>=d;i++)
    {
        res += C(i-1,d)*C(n-i,d)%mod*a[i]%mod;
        res%=mod;
    }
    cout<<res<<'\n';
}

int main()
{
    fac[0]=inv[0]=1;
    for(int i=1;i<=N-1;i++)
    {
        fac[i] = fac[i-1]*i%mod;
        inv[i] = qpow(fac[i],mod-2,mod);
    }
    int t;
    cin>>t;
    while(t--)
    {
        solve();
    }

    return 0;
}