#include #include #include using namespace std; int bit(int x){ int response=(x%2); while(x/=2) response+=(x%2); return response; } struct Struct{ int n,count; Struct(int n=0,int count=0):n(n),count(count){}; }; int main(){ int N; cin >> N; queue circle; circle.push(Struct(1,1)); map dp; bool sign=false; Struct now; while(circle.size()!=0){ now=circle.front();circle.pop(); if(now.n==N){ sign=true; break; } if(dp[now.n]!=0)continue; if(now.n<0 || now.n>N)continue; dp[now.n]=true; int step=bit(now.n); circle.push(Struct(now.n-step,now.count+1)); circle.push(Struct(now.n+step,now.count+1)); } if(sign) cout<