#define rep(i,n) for(int i=0;i<(int)(n);i++) #define ALL(v) v.begin(),v.end() typedef long long ll; #include using namespace std; int A[10010]; int n; void bfs(int u,int i){ A[u]=i; queue q; q.push(u); while(!q.empty()){ int a=q.front(); q.pop(); int c=__builtin_popcount(a); if(a-c>0 && A[a-c]==0){ A[a-c]=A[a]+1; q.push(a-c); } if(a+c<=n && A[a+c]==0){ A[a+c]=A[a]+1; q.push(a+c); } } } int main(){ cin>>n; bfs(1,1); if(A[n]==0) cout<<-1<