#502. 异或
异或
问题背景
小方最近新学了一些有趣的数学知识——异或,于是就来考考他的朋友小谢,你能帮小谢解答一下吗?
十进制 5 的二进制为 101;
十进制 0 的二进制为 0;
所以 ,异或运算过程如下:

问题描述
现有两个整数 和 ,你可以进行任意次数(包括 次)的如下操作:挑选一个整数 ,要求 当前的 值)(注意这里的 是操作时的当前值,不是最初给定的初始值);随后将 更新为 和 的按位异或结果(即 ,其中 表示按位异或操作)。你的目标是通过一系列这样的操作,让 最终恰好等于 。请找出一个操作方案,使得操作次数不超过 次;如果不存在这样的方案,就输出 。
输入格式
首先输入一个整数 ,表示测试用例的数量。
每个测试用例包含两个整数 和 。
输出格式
对于每个测试用例:
如果无法通过允许的操作将 变为 ,输出 ;
否则,第一行先输出一个整数 表示操作次数,然后接下来第二行再输出 k 个整数 ,表示每次操作选择的 x 的值(顺序为操作执行顺序)。若有多个可行方案,输出任意一个即可。
输入样例
6
9 6
13 13
292 929
405 400
998 244
244 353
输出样例
2
7 8
0
-1
1
5
2
25 779
-1
评测数据规模
对于所有评测数据, ,。