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