#include <algorithm>
#include <climits>
#include <iostream>
#include <bits/stdc++.h>
#include <iterator>
#include <set>
#include <string>
#include <unordered_map>
#include <vector>
using namespace std;
int main() {
int T;
string s;
cin >> T;
vector<string> vs;
while (T--) {
long long t;
int n, max = 1;
cin >> n;
vector<long long> filters;
vector<long long> vll(n);
for(int i = 0 ;i < n;++i){
cin >> t;
vll[i] = t;
if(filters.empty()){
filters.emplace_back(t);
}else{
bool isMatch = false;
for(auto &flt:filters){
if((flt & t) > 0){
flt = flt | t;
isMatch = true;
}
}
if(isMatch == false)
filters.emplace_back(t);
}
}
for(auto i = 0;i < filters.size();++i){
for(auto j = i + 1; j < filters.size();++j){
if((filters[i] & filters[j]) > 0){
filters[i] = filters[i] | filters[j];
filters[j] = filters[i] | filters[j];
}
}
}
unordered_map<long long, int> ump_cnt;
for(int i = 0 ;i < n;++i){
for(int j = 0;j < filters.size();++j){
if((vll[i] & filters[j]) > 0){
ump_cnt[filters[j]]++;
break;
}
}
}
for(auto c:ump_cnt){
max = max < c.second ? c.second : max;
}
cout << max << endl;
}
return 0;
}
// 64 位输出请用 printf("%lld")