#include #include using namespace std; int n; queueP; int used[10001]; main() { cin>>n; P.push(1); used[1]=1; while(!P.empty()) { int u=P.front();P.pop(); int x=__builtin_popcount(u); if(u-x>0&&!used[u-x]) { used[u-x]=used[u]+1; P.push(u-x); } if(u+x<=n&&!used[u+x]) { used[u+x]=used[u]+1; P.push(u+x); } } cout<<(used[n]?used[n]:-1)<