#include using namespace std; int walk(int n, int count, vector a){ if( n == 1){ return count; } if( count > 14){ return 20; } int res = 20; for( int i = max(n - 15,0) ; i < min( n + 15, (int)a.size() ); i++){ if( abs( i - n ) == a.at(i) ){ res = min( res, walk(i, count + 1, a)); } } return res; } int main(){ int n; vector a; cin >> n; for(int i =0; i< n + 1; i++){ a.push_back( (int)bitset<32>(i).count() ); } int res; res = walk(n,0, a); if(res == 20){ cout << -1 << endl; }else{ cout << res + 1 << endl; } return 0; }