#include using namespace std; #define rep(i,n) for(ll i=0;i=0;i--) #define fi first #define se second #define all(x) (x).begin(),(x).end() #define CST(x) cout<; using vvl=vector>; using pl=pair; template inline bool chmin(T& a, T b){ if(a>b){a = b;return true;}return false;} template inline bool chmax(T& a, T b){ if(a>N; vvl info(N); rep(i,N){ int p=__builtin_popcount(i+1); if(i-p>=0)info[i].push_back(i-p); if(i+p que; que.push(0); dist[0]=1; while(que.size()){ int q=que.front(); que.pop(); for(auto p:info[q]){ if(dist[q]+1