#include using namespace std; using ll=long long; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); ll n;cin>>n; queueque; mapdist; que.push(1); dist[1]=1; while(!que.empty()) { ll now=que.front(); que.pop(); ll d=__builtin_popcount(now); for(int i=-1;i<=1;i+=2) { ll nex=now+d*i; if(nex<=0||nex>n||dist.contains(nex))continue; dist[nex]=dist[now]+1; que.push(nex); } } if(dist.contains(n))cout<