int f(int x){ int s=x%2; while(x/=2)s+=x%2; return s; } int g(int*a,int n){ int b[10001],i,j,s=0; memcpy(b,a,n*4+4); for(i=1;i<=n;i++){ if(!a[i])continue; j=f(i); if(i+j<=n&&!a[i+j])b[i+j]++,s++; if(i-j>0&&!a[i-j])b[i-j]++,s++; } memcpy(a,b,n*4+4); return s; } int main(){ int a[10001]={0,1},i=0,n; scanf("%d",&n); while(!a[n]&&g(a,n))i++; printf("%d",a[n]?i+1:-1); return 0; }