#include #include using namespace std; typedef long long ll; ll a[200010],d[60]; vector p; int main(){ ll i,j,n,x,y; cin >> n >> x >> y; for(i=0;i> a[i]; for(j=0;j<60;j++) d[j] = y>>j&1; for(i=n - 1;i>=0;i--){ bool f1 = true,f2 = true; for(j=0;j<60;j++){ if(d[j]==-1) continue; if(d[j] && !(a[i]>>j&1)) f1 = false; if(!d[j] && a[i]>>j&1) f2 = false; } if(!f1 && !f2){ cout << -1 << endl; return 0; } if(f1 && f2){ p.push_back(3); while(p.size()>j&1)) d[j] = -1; } } if(f2){ p.push_back(2); for(j=0;j<60;j++){ if(a[i]>>j&1) d[j] = -1; } } } for(j=0;j<60;j++){ if(d[j]==-1) continue; if(d[j]!=(x>>j&1)){ cout << -1 << endl; return 0; } } for(i=n - 1;i>=0;i--) cout << p[i] << " "; cout << endl; }