n=gets.to_i
k=i=s=0
s+=(-2+k+=1)*~-k/2+1while s<n
s-=(k-2)*~-k/2+1
(n<=s+k-i-2?(p ('1'*(i+1)+'0'*(s+k-i-n-1)+'1'*(-s+n)).to_i(2);exit):(s+=k-2-i;i+=1))while i<k-2&&s<n
p 2**k-1