#include<bits/stdc++.h> using namespace std; using ll=long long; int main(){ ll N,X,Y; cin>>N>>X>>Y; if(X==Y){ cout<<0<<endl; return 0; } if(Y%2==0){ cout<<-1<<endl; return 0; } string S; while(Y>0){ S.push_back('0'+Y%2); Y/=2; } reverse(S.begin(),S.end()); vector<int> AN; AN.push_back(N); ll k=0; for(int j=1;j<S.size();j++){ if(S[j]=='0')k++; else { AN.push_back(k+1); k=0; } } ll an=AN.size(); cout<<an<<endl; for(int i=0;i<an;i++)cout<<AN[i]<<" \n"[i==an-1]; }