from collections import deque N=int(input()) pd=[0]*(N+1) pd [1]=1 pq = deque() pq.append(1) def g(m,n): if 10: n=pq.popleft() if n==N: return pd[n] nb=bin(n).count('1') g(n+nb,n) g(n-nb,n) return -1 print(f(N))