def popcount(x): r = 0 while x: r += x%2 x //= 2 return r n = int(input()) dp = [-1]*(n+1) dp[1] = 1 from collections import deque q = deque() q.append(1) while q: v = q.popleft() c = popcount(v) for i in [v-c,v+c]: if 0 < i <= n and dp[i]==-1: dp[i] = dp[v]+1 q.append(i) print(dp[n])