{-# LANGUAGE BangPatterns #-} import Control.Monad.Fix import Data.Bits main :: IO () main = do l <- readLn :: IO Int print =<< solve 1 1 l solve :: Int -> Int -> Int -> IO Int solve x y l = fix (\loop !i !j !acc -> if (8 :: Int) * (i + j) * (i + i + j) > l then return acc else loop (i + j) i (acc + ((i `xor` j) .&. (1 :: Int))) ) x y (0 :: Int)