取模 2
给定 n 个正整数 a1,a2,…,an。
再给定 A,你需要从数列 a 中选择 m 项,以任意顺序排列为 b1,b2,…,bm,使得 (…((Amodb1)modb2)mod…)modbm=0。
求出 m 的最小值。若无解,请输出 -1。
输入格式
本题有多组数据。
第一行一个整数 T,表示数据组数。
对于每组数据:
- 第一行两个整数 n,A,意义如题述。
- 第二行 n 个数,表示 a1,a2,…,an。
输出格式
对于每组数据,仅一行一个数,表示答案。
样例
输入样例 1
输出样例 1
样例 1 说明
- 对于数据 1:考虑 9mod7=2,2mod2=0。可以证明,2 是 m 的最小值。
- 对于数据 2:显然无解。
数据规模与约定
| 测试点 |
限制 |
| 1 |
存在 i 使得 ai=1 |
| 2∼3 |
2≤ai≤20 |
| 4∼5 |
n≤10 |
| 6∼10 |
无特殊限制 |
对于 100% 的数据,1≤T≤3,1≤n≤20,1≤A,ai≤106。