import java.util.*; class B{ static Scanner s = new Scanner(System.in); public static void main(String[] args) { int in = Integer.parseInt(s.next()); int[] m = new int[in]; Queue q = new ArrayDeque(); Arrays.fill(m, Integer.MAX_VALUE); m[0]=1; q.add(Integer.valueOf(0)); while(!q.isEmpty()) { int i = q.poll(), d = Integer.bitCount(i+1), a = i-d, b = i+d; if(a>=0 && m[a]>m[i]+1) { m[a]=m[i]+1; q.add(a); } if(b< in && m[b]>m[i]+1) { m[b]=m[i]+1; q.add(b); } } if(m[in-1]==Integer.MAX_VALUE) { System.out.println(-1); }else { System.out.println(m[in-1]); } } }