#include using namespace std; using ll=long long; #define MOD 1000000007 int main(){ int N; cin>>N; vector count(N+1,0); for(int i=0;i0){ count.at(i)+=res%2; res>>=1; } } vector ans(N+1,-1); queue q; ans.at(1)=1; q.push(1); while(!q.empty()){ int n=q.front(); int x=count.at(n); if(n-x>0){ if(ans.at(n-x)==-1){ ans.at(n-x)=ans.at(n)+1; q.push(n-x); } } if(n+x<=N){ if(ans.at(n+x)==-1){ ans.at(n+x)=ans.at(n)+1; q.push(n+x); } } q.pop(); } cout<