def good(n) return :YES if n == 0 or n == 1 return :NO if n < 0 sup = 0 m = 0 loop do k = 2 ** m - 1 sup += k return good(n - k) if n <= sup m += 1 end end puts good gets.to_i