Given 2 integers u and v, find the shortest array such that [bitwise-xor](https://en.wikipedia.org/wiki/Bitwise_operation#XOR) of its elements is u, and the sum of its elements is v.

Input

The only line contains 2 integers u and v (0 ≤ u,v ≤ 10^{18}).

Output

If there's no array that satisfies the condition, print "-1". Otherwise:

The first line should contain one integer, n, representing the length of the desired array. The next line should contain n positive integers, the array itself. If there are multiple possible answers, print any.

Examples

Input


2 4


Output


2
3 1

Input


1 3


Output


3
1 1 1

Input


8 5


Output


-1

Input


0 0


Output


0

Note

In the first sample, 3⊕ 1 = 2 and 3 + 1 = 4. There is no valid array of smaller length.

Notice that in the fourth sample the array is empty.
from collections import Counter
from collections import deque
from sys import stdin
from bisect import *
from heapq import *
import math

g   = lambda : stdin.readline().strip()
gl  = lambda : g().split()
gil = lambda : [int(var) for var in gl()]
gfl = lambda : [float(var) for var in gl()]
gcl = lambda : list(g())
gbs = lambda : [int(var) for var in g()]
mod = int(1e9)+7
inf = float("inf")

x, s = gil()
if x > s or (s-x)&1:
	print(-1)
else:
	d = (s-x)//2
	a = [x, d, d]
	# print(math.log2(s))
	for i in range(1, 3):
		for j in range(60):
			bit = (1<<j)
			if (a[i] & bit) and (a[i-1]&bit)==0:
				# print(j, "th bit toggling inn ", a[i-1], a[i])
				a[i] = a[i]^bit;a[i-1] = a[i-1]^bit
				# print(j, "th bit toggling inn: after ", a[i-1], a[i])

	while a and a[-1]==0:
		a.pop()
	print(len(a))
	if a:print(*a)
	# print(sum(a)==s)

