#include #include #include #include #include #include using namespace std; int bitcount(int n){ if(n==0)return 0; else return bitcount(n/2)+n%2; } //typedef __int64 LL; typedef pairP; int a[10010]; int main(){ int n; cin>>n; fill(a,a+n+1,-1); queue que; que.push(1),a[1]=1; while(que.size()>=1){ int p=que.front(); que.pop(); int x=bitcount(p); if(p+x<=n && a[p+x]==-1)que.push(p+x),a[p+x]=a[p]+1; if(p-x>=1 && a[p-x]==-1)que.push(p-x),a[p-x]=a[p]+1; } cout<