#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e5+10,P=1e9+7;
int t,k,n,a[N],n0,n1;
int jc[N];
void pre(){
jc[0]=1;
for(int i=1;i<=N;i++){
jc[i]=jc[i-1]*i%P;
}
return;
}
int power(int x,int y,int z){
int ans=1;
while(y>0){
if(y&1==1){
ans=ans*x%z;
}
x=x*x%z;
y=y>>1;
}
return ans;
}
int C(int x,int y){
return jc[x]*(power(jc[y]*jc[x-y]%P,P-2,P))%P;
}
void solve(){
int mi_1=k/2+1,ans=0;
for(int i=mi_1;i<=min(n1,k);i++){
if(k-i>n0) continue;
ans=(ans+C(n1,i)*C(n0,k-i)%P)%P;
}
cout<<ans<<endl;
return;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
pre();
cin>>t;
while(t--){
cin>>n>>k;
n0=0,n1=0;
for(int i=1;i<=n;i++){
cin>>a[i];
if(a[i]==0) n0++;
else n1++;
}
solve();
}
return 0;
}