#include using namespace std; struct pr{int nw,cost;}; int main(){ cin.tie(0),ios::sync_with_stdio(false); int n; cin>>n; vectorcnt(n+1,0); for(int i=1;i<=n;++i){ int j=i,sum=0; while(j){ sum+=j%2; j/=2; } cnt.at(i)=sum; } vectormn(n+1,1e9); mn.at(1)=1; queueq; q.push({1,1}); while(q.size()){ int nw=q.front().nw,nxcost=q.front().cost+1; q.pop(); int mns=nw-cnt.at(nw),pls=nw+cnt.at(nw); if(mns>1&&nxcost