#P1062. 异或配平

异或配平

题目描述

给定两个非负整数 uuvv。现在你需要构造一个长度尽可能短的正整数序列,使得这个序列同时满足以下两个条件:

  • 序列中所有数的按位异或结果等于 uu
  • 序列中所有数的总和等于 vv

如果不存在这样的序列,则需要输出 1-1

如果存在多种长度最短的合法序列,输出任意一种即可。

特别地,长度为 00 的空序列是允许的,此时它的元素和为 00,按位异或结果也视为 00

输入格式

输入一行,包含两个整数 u,vu,v

输出格式

如果不存在合法序列,输出一行一个整数 1-1

否则,第一行输出一个整数 nn,表示构造出的序列长度。

n>0n>0,第二行输出 nn 个正整数,表示这个序列。

如果有多组合法答案,输出任意一组均可。

样例

2 4
2
3 1
1 3
3
1 1 1
8 5
-1
0 0
0

样例说明

对于第 11 个样例,31=23 \oplus 1 = 2,且 3+1=43 + 1 = 4,并且不存在长度更短的合法序列。

对于第 44 个样例,可以选择空序列。

数据范围

  • 对于 100100% 的数据:0u,v10180 \le u,v \le 10^{18}