#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int main(){
ios::sync_with_stdio(0);cin.tie(0);
int t;cin >> t;
while(t) {
int n,k;cin >> n >> k;
vector<int> a(n);
for(int i=0;i<n;i++) cin >> a[i];
int p = 1e9 + 7;
vector<int> dp(64);
for(int i=0;i<n;i++) {
for(int j=0;j<=63;j++) {
dp[j&a[i]] = (dp[j&a[i]] + dp[j]) % p;
}
dp[a[i]]++;
}
LL ans = 0;
for(int i=0;i<=63;i++) {
int x = i,cnt = 0;
while(x) {
cnt += x % 2;
x /= 2;
}
if(cnt == k) ans = (ans + dp[i]) % p;
}
cout << ans << endl;
t--;
}
}
1706A - Another String Minimization Problem | 1695B - Circle Game |
1702B - Polycarp Writes a String from Memory | 1701A - Grass Field |
489C - Given Length and Sum of Digits | 886B - Vlad and Cafes |
915A - Garden | 356A - Knight Tournament |
1330A - Dreamoon and Ranking Collection | 1692B - All Distinct |
1156C - Match Points | 1675A - Food for Animals |
1328C - Ternary XOR | 1689A - Lex String |
1708B - Difference of GCDs | 863A - Quasi-palindrome |
1478A - Nezzar and Colorful Balls | 1581B - Diameter of Graph |
404A - Valera and X | 908A - New Year and Counting Cards |
146A - Lucky Ticket | 1594C - Make Them Equal |
1676A - Lucky | 1700B - Palindromic Numbers |
702C - Cellular Network | 1672C - Unequal Array |
1706C - Qpwoeirut And The City | 1697A - Parkway Walk |
1505B - DMCA | 478B - Random Teams |