编程题
### 问题描述
小然在设计一个新的数字系统,他有一个包含 $N$ 个非负整数的数组 $A$,保证 $A$ 中至少包含两个不同的元素。
他还有一个非负整数 $X$。
对于每一个 $Y (0 \leq Y \leq X)$,他会创建一个新的数组 $B$,其中 $B_i = A_i \,|\, Y$,这里 $|$ 表示按位或操作。
小然希望找到最大的 $Y (Y \leq X)$,使得数组 $B$ 中至少包含两个不同的元素。
### 输入格式
输入的第一行包含一个整数 $T$,表示测试用例的数量。
每个测试用例由两行组成:
- 第一行包含两个整数 $N$ 和 $X$,表示数组 $A$ 的长度和允许的最大 $Y$ 值。
- 第二行包含 $N$ 个空格分隔的整数 $A_1, A_2, ..., A_N$,表示数组 $A$ 的元素。
### 输出格式
对于每个测试用例,输出一行一个整数,表示满足条件的最大 $Y$ 值。
### 样例输入
```markdown
3
3 5
1 1 2
5 10
4 5 2 3 5
3 3
1 1 3
```
### 样例输出
```markdown
5
10
1
```
### 说明
在第一个测试用例中,当 $Y = 5$ 时,$B = [1 | 5, 1 | 5, 2 | 5] = [5, 5, 7]$,包含了两个不同的元素。
### 评测数据范围
$1 \leq T \leq 10^3$。
$2 \leq N \leq 10^5$。
$0 \leq A_i, X < 2^{30}$。
所有测试用例中 $N$ 的总和不超过 $2 \times 10^5$。