#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];
}