from collections import deque N = int(input()) dists = [-1] * (N+1) dists[1] = 1 q = deque([1]) while q: x = q.popleft() d = x.bit_count() l = x-d if l > 0 and dists[l] == -1: dists[l] = dists[x] + 1 q.append(l) r = x+d if r <= N and dists[r] == -1: dists[r] = dists[x] + 1 q.append(r) print(dists[N])