#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; } //INSERT ABOVE HERE signed main(){ Int n,x; cin>>n>>x; x++; if(n>=32){ Int a=x-(1<<(n-1)); if(a>0&&(a%(1<<(n-1))==0)) cout<<1< vs; for(Int i=1;i*i<=x;i++){ if(x%i) continue; vs.emplace_back(i); vs.emplace_back(x/i); } vs=compress(vs); vs.erase(vs.begin()); function dfs= [&](Int k,Int l,Int b){ // cout<