#include "bits/stdc++.h" using namespace std; typedef long long ll; #define INF (1<<30) #define INFLL (1ll<<60) typedef pair P; typedef pair E; #define MOD (1000000007ll) #define l_ength size #define EPS (1e-10) void add_mod(ll &a, ll b){ a += b; a %= MOD; } void mul_mod(ll &a, ll b){ a *= b; a %= MOD; } int f(int x){ return (x)?x%2+f(x/2):0; } queue q; int main(void){ int n,p,c,d[12345]; fill(d,d+12345,INF); d[1] = 1; cin >> n; q.push(1); while(!q.empty()){ p = q.front(); q.pop(); c = f(p); if(p+c <= n && d[p+c] > d[p]+1){ d[p+c] = d[p]+1; q.push(p+c); } if(p-c >= 1 && d[p-c] > d[p]+1){ d[p-c] = d[p]+1; q.push(p-c); } } cout << ((d[n]==INF)?-1:d[n]) << endl; return 0; }