#include using namespace std; int main(){ int n; cin>>n; queue q; q.push(1); vector dis(n+1,n+1); dis[1]=1; while(!q.empty()){ int now=q.front(); q.pop(); int bit=__builtin_popcount(now); if(now-bit>0 && dis[now-bit]==n+1){ dis[now-bit]=dis[now]+1; q.emplace(now-bit); } if(now+bit<=n && dis[now+bit]==n+1){ dis[now+bit]=dis[now]+1; q.emplace(now+bit); } } cout<<(dis[n]