F=->n{ c=n c+=n/=2 while n>0 c } S=->n,i,j{ k=(j+i)/2 r=F[k] if r==n true elsif i==j-1 false elsif r>n S[n,i,k] else S[n,k,j] end } puts S[N=gets.to_i,1,N] ? :YES : :NO