### 问题描述
在一次激烈的犯罪现场,鲁邦发现了一只神秘的密码盒,里面藏有重要的情报。然而,密码盒被一种复杂的加密系统保护着,只有通过一系列操作才能打开。
密码盒的加密系统是一个数字数组 A 和一个整数 X。系统允许鲁邦执行以下操作:
选择两个不同的索引 i 和 j,并同时将 Ai 和 Aj 设为 (Ai⊕Aj)|X。其中 ⊕ 和 | 分别表示位异或和位或运算。
密码盒将在数组中所有元素都变为奇数的时候打开。鲁邦想要知道,最少需要进行多少次操作才能打开密码盒。如果无法打开密码盒,鲁邦需要知道这一情况,以便另寻他法。
请你帮助鲁邦计算出打开密码盒所需的最小操作次数。
第一行包含两个由空格分隔的整数 N 和 X,分别表示数字数组的大小和密码盒给定的整数。
接下来的一行包含 N 个由空格分隔的整数,表示数字数组 A 的元素。
数据范围保证:2≤N≤105,0≤X<230,0≤Ai<230。
输出打开密码盒所需的最小操作次数。如果无法打开密码盒,则打印 −1。
5 4
2 3 4 17 9
2
鲁邦可以通过 2 次操作打开密码盒:
现在,密码盒打开了。可以证明鲁邦不能在少于 2 次操作的情况下打开密码盒。