#include #include #include #include #include #include #include #include #include #include #include using namespace std; #define MOD 1000000007 #define MOD2 998244353 #define INF (1<<29) #define LINF (1LL<<60) #define EPS (1e-10) #define PI 3.1415926535897932384626433832795028 typedef long long Int; typedef pair P; typedef long double Real; typedef complex CP; Int k, x; Int calc(int x){ return (1 << x) * 2 - x; } void output(vector vec){ cout << "Yes" << endl; cout << vec.size() << endl; for(auto elem:vec)cout << elem << " ";cout << endl; exit(0); } void no(){ puts("No"); exit(0); } int main(){ cin >> k >> x; if(x == 0)output({!k}); if(k == 0)x++; if((x & -x) != x)no(); vector ans; for(int i = 0;i < 5;i++){ ans.push_back(1 << i); } int back = 4; while(ans[back] > k)back--; ans[back] = k; for(int cnt = 1, i = 0;cnt < x;cnt *= 2,i++){ int num = 0; for(int j = 0;j < 5;j++){ if((i >> j) % 2)num ^= ans[j]; } ans.push_back(num); } output(ans); return 0; }