#include <bits/stdc++.h>
#define int long long
#define db double
const int Mod = 1e9 + 7;
using namespace std;
const int N = 200010;
int t, n, k;
int arr[N];
int dp[2][64];
int num(int x) { return __builtin_popcount(x); }
signed main() {
cin >> t;
while (t--) {
memset(dp[0], 0, sizeof dp[0]);
memset(dp[1], 0, sizeof dp[1]);
cin >> n >> k;
for (int i = 1; i <= n; i++)
cin >> arr[i];
for (int i = 1; i <= n; i++) {
dp[i % 2][arr[i]] = 1;
for (int j = 0; j < 64; j++) {
dp[i % 2][j] = (dp[i % 2][j] + dp[(i - 1) % 2][j]) % Mod;
dp[i % 2][j & arr[i]] =
(1LL * dp[i % 2][j & arr[i]] + dp[(i - 1) % 2][j]) % Mod;
}
}
int ans = 0;
for (int i = 0; i < 64; i++) {
if (num(i) == k)
ans += dp[n % 2][i], ans %= Mod;
}
cout << ans << '\n';
}
return 0;
}