from collections import deque N=int(input()) def BitSugoroku(): D = deque([0]*(N+1)) D[1] = 1 q = deque() q.append(1) while(q): v_now = q.popleft() if v_now == N: return D[v_now] bitcount = bin(v_now).count("1") v_rear = v_now + bitcount v_front = v_now - bitcount if(0 < v_rear <= N) and (D[v_rear]==0): q.append(v_rear) D[v_rear] = D[v_now] + 1 if(0