from collections import deque n = int(input()) dp = [-1] * (n + 1) dp[1] = 1 q = deque() q.append(1) while q: i = q.popleft() dist = bin(i).count('1') for j in i - dist, i + dist: if 1 <= j <= n and dp[j] == -1: dp[j] = dp[i] + 1 q.append(j) print(dp[n])