#include <bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; queue<int> q; q.push(1); vector<int> 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]<n+1?dis[n]:-1)<<endl; }