{-# LANGUAGE BangPatterns #-} import Control.Monad.Fix import Data.Bits main :: IO () main = do l <- readLn :: IO Int print =<< solve l solve :: Int -> IO Int solve 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))) ) (1 :: Int) (1 :: Int) (0 :: Int)