Problem: 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.

Solution (in PYTHON3):

Solution:
import sys
input = sys.stdin.readline
sys.setrecursionlimit(10**6)


############ ---- Input Functions ---- ############
def in_int():
    return (int(input()))


def in_list():
    return (list(map(int, input().split())))


def in_str():
    s = input()
    return (list(s[:len(s) - 1]))


def in_ints():
    return (map(int, input().split()))


xor, add = in_ints()
# print(xor,add)
import math
if xor  > add :
    print(-1)
else:
    a = [0]*100
    if (add-xor)%2  ==1 :
        print(-1)
    else:
        add = add - xor
        while xor > 0 :
            a[int(math.log2(xor&-xor))] +=1
            xor -= xor&-xor

        while add > 0:
            p = int(math.log2(add&-add))-1
            add -= add&-add
            a[p]+=2
        n = max(a)
        ans  = []
        print(n)
        p = 0
        ans = 0
        for i in range(n):
            xx= 0
            for j in range(len(a)):
                if a[j] > 0 :
                    a[j]-=1
                    xx += int(math.pow(2, j))
            p = p^xx
            ans += xx
            print(xx,end=' ')
        print()
        # print(p, ans)