试稥
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

Z经过在三体世界几天的战斗,身上的味道已经是难以言表,于是他想制作出一款香薰来净化空气,在他面前放有 n 种香料,他可以选择其中的任意几种香料来制作香薰。

K 种香料制作香味为 x 的香薰公式为  ( b 数组为选择的香料下标 )

请帮助大Z选择出几种香料来制作出他想要的香薰或者告诉他这不可能实现

表示 a 按位异或 b


多样例

输入描述:

第一行一个整数 T 表示样例数

随后每个样例第一行两个整数 n,x 表示共有 n 种香料和大Z想要的香薰香味

第二行 n 个整数 第 i 个数表示香味为 a_i 的香料




a_i2 的幂


输出描述:

T 组输出

第一行一个整数 k 表示大Z需要选择 k 种香料,如果不能实现则输出 -1

第二行 k 个整数 第 i 个数 b_i 表示大Z需要选择第 b_i 个香料来制作香薰


示例1

输入

复制
2
3 10
2 4 8
3 11
2 4 8

输出

复制
2
1 3
-1

说明

第一组样例,可以选择香味为 2 和香味为 8 的两种香料,使得最终的香薰香味 x=2\oplus 8
第二组样例,无论怎么选择都无法满足大Z