import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    static class UnionFind{
        int[] parent;
        int[] size;
        int maxSize;
        public UnionFind(int n){
            int total=n+61;
            parent=new int[total];
            size=new int[total];
            maxSize=1;
            for(int i=0;i<total;i++){
                parent[i]=i;
                size[i]=(i<n)?1:0;
            }
        }
        public int find(int x){
            if(parent[x]!=x){
                parent[x]=find(parent[x]);
            }
            return parent[x];
        }
        public void union(int x,int y){
            int rootX=find(x);
            int rootY=find(y);
            if(rootX==rootY) return;
            if(size[rootX]<size[rootY]){
                int temp=rootX;
                rootX=rootY;
                rootY=temp;
            }
            parent[rootY]=rootX;
            size[rootX]+=size[rootY];
            maxSize=Math.max(maxSize,size[rootX]);
        }
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int T=in.nextInt();
        while(T-->0){
            int n=in.nextInt();
            long[] weights=new long[n];
            for(int i=0;i<n;i++)
            {weights[i]=in.nextLong();
            //System.out.print(weights[i]+" ");
            }
            UnionFind uf=new UnionFind(n);
            for(int i=0;i<n;i++){
                long w=weights[i];
                for(int bit=0;bit<=60;bit++){
                    if((w&(1L<<bit))!=0){
                        uf.union(i,n+bit);
                    }
                }
            }
            System.out.println(uf.maxSize);
        }
    }
}