from collections import deque n=int(input()) d=[-1]*(n+1) d[1]=1 q=deque() q.append(1) while q: now=q.popleft() num_2=bin(now)[2:] move=sum(list(map(int,num_2))) if now-move>=1: if d[now-move]==-1: d[now-move]=d[now]+1 q.append(now-move) if now+move<=n: if d[now+move]==-1: d[now+move]=d[now]+1 q.append(now+move) print(d[-1])