#include using namespace std; int N; vector bit(10001, 0); vector dp(10001, -1); bool flag = false; int Count(int i){ int res = 0; while(i > 0){ if(i % 2 == 1) ++res; i /= 2; } return res; } void rec(int count = 1, int corrent = 1){ if(~dp[corrent]) return ; dp[corrent] = count; if(corrent == N){ cout << count << endl; flag = true; return; } int c; if((c = corrent + bit[corrent]) <= N) rec(count + 1, c); if((c = corrent - bit[corrent]) >= 1) rec(count + 1, c); return; } int main(void){ cin >> N; for(int i = 1; i <= N; ++i) bit[i] = Count(i); rec(); if(!flag) cout << -1 << endl; return 0; }