#include using namespace std; int main() { int n; cin>>n; vector cnt(n+1,-1); cnt[1]=1; map bits; for(int i=1; i<=n; i++){ bitset<32> bs(i); bits[i] = bs.count(); } queue q; q.push(1); while(!q.empty()){ int x=q.front(); q.pop(); if(x==n) break; int prev = x-bits[x]; if(prev>=1 && cnt[prev]==-1){ cnt[prev] = cnt[x]+1; q.push(prev); } int next = x+bits[x]; if(next<=n && cnt[next]==-1){ cnt[next] = cnt[x]+1; q.push(x+bits[x]); } } cout << cnt[n] << endl; return 0; }