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 sys import stdin
import sys

tt = 1

for loop in range(tt):

    u,v = map(int,stdin.readline().split())

    if v == u == 0:
        print (0)
        sys.exit()

    #0
    if u%2 != v%2 or u > v:
        print (-1)
        sys.exit()
        

    #1
    if u == v:
        print (1)
        print (u)
        sys.exit()

    #2
    ans = [0,0]
    ulis = []
    vrem = v
    for i in range(65):
        if 2**i & u > 0:
            vrem -= 2**i
            ans[0] += 2**i
        else:
            ulis.append(2**(i+1))

    ulis.sort()
    ulis.reverse()
    for i in ulis:
        if i <= vrem:
            vrem -= i
            ans[0] += i//2
            ans[1] += i//2

    if ans[0]^ans[1] == u and ans[0]+ans[1] == v:
        print (2)
        print (*ans)
        sys.exit()

    #3
    print (3)
    print (*[u,(v-u)//2,(v-u)//2])