三途川的摆渡人
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小红这天来到了三途川,发现这里有一个摆渡人,名字叫小町。
小町的职责是将一些灵魂运送到冥界。每个灵魂有一个特性,用整数a_i表示。但小町非常喜欢偷懒,她只想运送尽可能少的灵魂然后摸鱼。
已知当船上所有灵魂特性的 位与运算 正好等于0时,船才可以开动。小町想让小红帮忙抛弃掉尽可能多的灵魂(但不能全抛弃),这样自己才能最大限度的偷懒。请你帮小红计算出可以抛弃的灵魂的最多数量。

输入描述:

本题有多组测试数据。
第一行包含一个正整数T\ (1 \leq T \leq 10^3),表示数据组数。
接下来,对于每组测试数据,输入包含两行。
第一行一个正整数 n\ (1 \leq n \leq 2 \times 10^5),表示灵魂的数量。
第二行 n 个整数a_i\ (0 \leq a_i \leq 127),表示每个灵魂的特性。
(保证所有测试数据中n 的总和不超过 2 \times 10^5)。

输出描述:

对于每组测试数据,输出一行一个整数表示答案。
如果无解,请输出-1。否则输出一个整数,代表小町可以抛弃的最多灵魂数量。
示例1

输入

复制
2
5
7 3 3 2 5
5
2 14 6 30 10

输出

复制
3
-1

说明

第一个测试数据,抛弃掉前三个灵魂,剩下的两个灵魂与运算恰好为0(2 & 5 = 0),因此船可以开动。
第二个测试数据,显然无论如何,船都是不能开动的。