n=gets.to_i q=[[1,1]] h=[] p (while q[0] a,b=q.shift next if h[a] h[a]=1 break b if a==n bit=a.to_s(2).count(?1) q<<[a+bit,b+1] if a+bit<=n q<<[a-bit,b+1] if a-bit>0 end)||-1