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 JAVA):

Solution:
import java.io.*;
import java.util.*;

//solution classes here

public class Code {

    //main solution here

    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner(System.in);
        PrintWriter out = new PrintWriter(System.out);
        long u = sc.nextLong();
        long v = sc.nextLong();


        if(u==v) {
            if(u!=0)
                out.println("1");
            out.println(u);
        }
        else if((v-u)%2!=0||(v-u)<0) {
            out.println("-1");
        }
        else {
            long val=(v-u)/2;
            long a[] = {u,val,val};
            if((u&val)==0) {
                out.println(2);
                out.println(u+val+" "+val);
            }
            else {
                out.println(3);
                out.println(a[0]+" "+a[1]+" "+a[2]);
            }

        }




        out.flush();
        out.close();
    }


    //solution functions here

    /*
     *************************************************************************************************************************
     *************************************************************************************************************************
     *************************************************************************************************************************
     * #########  #######  ######  ########  ##  ###   ##  ##    ##  #######  ##    ##  #######  ##   ##  #######  ########
     * ##    ###  ##       ##      ########  ##  ## #  ##   ##  ##   ##       ##    ##  ##       ##  ##   ##       ##    ##
     * ##    ###  #######  ######     ##     ##  ##  # ##     ##     #######  ##    ##  ##       ####     #######  ########
     * ##    ###  ##           ##     ##     ##  ##   ###     ##     ##       ##    ##  ##       ##  ##   ##       ##   ##
     * #########  #######  ######     ##     ##  ##    ##     ##     ##       ########  #######  ##   ##  #######  ##     ##
     *************************************************************************************************************************
     *************************************************************************************************************************
     *************************************************************************************************************************
     */

    static class Scanner {
        StringTokenizer st;
        BufferedReader br;

        public Scanner(InputStream s) {
            br = new BufferedReader(new InputStreamReader(s));
        }

        public Scanner(FileReader fileReader) {
            br = new BufferedReader(fileReader);
        }

        public String next() throws IOException {
            while (st == null || !st.hasMoreTokens())
                st = new StringTokenizer(br.readLine());
            return st.nextToken();
        }

        public int nextInt() throws IOException {
            return Integer.parseInt(next());
        }

        public double nextDouble() throws  IOException{
            return Double.parseDouble(next());
        }

        public long nextLong() throws IOException {
            return Long.parseLong(next());
        }

        public String nextLine() throws IOException {
            return br.readLine();
        }

        public boolean ready() throws IOException {
            return br.ready();
        }
    }
}

/* ***************************************************************************************************************************
 * I'M NOT IN DANGER, I'M THE DANGER!!!
 * ***************************************************************************************************************************
 */