from collections import deque N=int(input()) a=deque([0]*(N + 1)) a[1]=1 b=deque() b.append(1) while(len(b)!=0): x=b.popleft() if(x==N): print(a[x]) break step=format(x,'b').count("1") y1=x+step y2=x-step if(0