#include using namespace std; using Int = long long; template inline void chmin(T1 &a,T2 b){if(a>b) a=b;} template inline void chmax(T1 &a,T2 b){if(a vector compress(vector v){ sort(v.begin(),v.end()); v.erase(unique(v.begin(),v.end()),v.end()); return v; } template map dict(const vector &v){ map res; for(Int i=0;i<(Int)v.size();i++) res[v[i]]=i; return res; } struct FastIO{ FastIO(){ cin.tie(0); ios::sync_with_stdio(0); } }fastio_beet; //INSERT ABOVE HERE signed main(){ Int n,x; cin>>n>>x; vector as; Int p=x/4*4; if(x<=3){ if(n%4==0){ if(x==1){ as.emplace_back(1); as.emplace_back(3); as.emplace_back(5); as.emplace_back(6); } if(x==2){ as.emplace_back(2); as.emplace_back(3); as.emplace_back(5); as.emplace_back(6); } if(x==3){ as.emplace_back(2); as.emplace_back(3); as.emplace_back(4); as.emplace_back(6); } } if(n%4==1){ as.emplace_back(x); } if(n%4==2){ for(Int k=1;k<4;k++) if(p+k!=x) as.emplace_back(p+k); } if(n%4==3){ if(x==1){ as.emplace_back(3); as.emplace_back(4); as.emplace_back(6); } if(x==2){ as.emplace_back(3); as.emplace_back(6); as.emplace_back(7); } if(x==3){ as.emplace_back(1); as.emplace_back(4); as.emplace_back(6); } } for(Int i=8;(Int)as.size()!=n;i+=4){ as.emplace_back(i+0); as.emplace_back(i+1); as.emplace_back(i+2); as.emplace_back(i+3); } }else{ assert(p>=4); if(n%4==0){ as.emplace_back(x); as.emplace_back(1); as.emplace_back(2); as.emplace_back(3); } if(n%4==1){ as.emplace_back(x); } if(n%4==2){ if(x&1){ as.emplace_back(p); as.emplace_back(x^p); }else{ as.emplace_back(p+3); as.emplace_back(x^(p+3)); } } if(n%4==3){ for(Int k=0;k<4;k++) if(p+k!=x) as.emplace_back(p+k); } for(Int i=4;(Int)as.size()!=n;i+=4){ if(i==p) continue; as.emplace_back(i+0); as.emplace_back(i+1); as.emplace_back(i+2); as.emplace_back(i+3); } } //as=compress(as); //assert((Int)as.size()==n); for(Int a:as) cout<