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


# _INPUT_LINES = sys.stdin.read().splitlines()
# input = iter(_INPUT_LINES).__next__


def go():
    # n = int(input())
    x, s = map(int, input().split())
    if x>s:
        return -1
    if x==s==0:
        return 0
    left = 0
    bits = []
    for b in range(s.bit_length() - 1, -1, -1):
        f = (1 << b)
        curbit=0
        left = left * 2 + ((s & f) >> b)
        cur = (x&f)>>b
        if cur>left:
            borrow = len(bits)-1
            while borrow>=0 and bits[borrow]<2:
                borrow-=1
            if borrow<0:
                return -1
            bits[borrow]-=2
            for bor in range(borrow+1,len(bits)):
                bits[bor]+=2
            left+=4

        if cur==1:
            cur-=1
            left-=1
            curbit=1
        curbit+=left-(left%2)
        left=left%2
        bits.append(curbit)
    if left:
        return -1
    vals = []
    for i in range(1,max(bits)+1):
        v=0
        for bb in bits:
            v=v*2+(bb>=i)
        vals.append(v)
    # vals.sort()
    return str(len(vals))+'\n' + ' '.join(map(str,vals))

t=1
# t = int(input())
# ans=[]
for _ in range(t):
    print(go())
# print('\n'.join(ans))
