func_code_string: #include <bits/stdc++.h>   using namespace std;   long long power(long long a, long long b) {     long long ans = 1;     while (b > 0) {       if (b & 1) {         ans = (ans * a);       }       a = (a * a);       b >>= 1;     }     return ans;   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);     long long a, b, i, l = 0, u;     cin >> a >> b;     if (a > b) {       cout <<  -1 ;       return 0;     }     if (a == 0 && b == 0) {       cout <<  0 ;       return 0;     }     if (a == 0 && b % 2 == 0) {       cout <<  2 n  << b / 2 <<     << b / 2;       return 0;     }     if (a == b) {       cout << 1 <<   n  << a;       return 0;     }     if (a % 2 != 0 && b % 2 != 0) {       long long d = b - a;       if (d == 0) {         cout <<  1 n  << 1;         return 0;       }       if ((a & (d / 2)) == 0) {         cout <<  2               <<   n ;         cout << a + d / 2 <<    ;         cout << d / 2;         return 0;       }       cout <<  3             <<   n ;       cout << a <<    ;       cout << d / 2 <<     << d / 2;       return 0;     }     if (a % 2 == 0 && b % 2 == 0) {       long long d = a;       vector<int> v;       while (d > 0) {         v.push_back(d & 1);         d = d >> 1;       }       while (v.size() <= 60) {         v.push_back(0);       }       for (i = 60; i >= 0; i--) {         if (v[i] == 0) {           u = power(2, i);           if (a + l + 2 * u == b) break;           if (a + l + 2 * u < b) {             l = l + 2 * u;           }         }       }       if (((a + l / 2 + u) ^ (l / 2 + u)) != a) {         long long d = b - a;         cout <<  3               <<   n ;         cout << a <<    ;         cout << d / 2 <<     << d / 2;         return 0;       }       cout <<  2 n ;       cout << a + l / 2 + u <<     << l / 2 + u <<   n ;       return 0;     }     cout <<  -1 ;     return 0;   }   