import           Control.Monad
import qualified Data.ByteString.Char8 as BS
import           Data.List
import           Data.Maybe

typify2 (x:y:_) = (x, y)
typify2 _       = undefined

--Input functions with ByteString
readInt :: BS.ByteString -> Integer
readInt = fst . fromJust . BS.readInteger

readIntTuple :: BS.ByteString -> (Integer, Integer)
readIntTuple = typify2 . map readInt . BS.words

readIntList :: BS.ByteString -> [Integer]
readIntList = map readInt . BS.words

getInt :: IO Integer
getInt = readInt <$> BS.getLine

getIntList :: IO [Integer]
getIntList = readIntList <$> BS.getLine

getIntNList :: Integral a => a -> IO [[Integer]]
getIntNList n = map readIntList <$> replicateM (fromIntegral n) BS.getLine

getIntMatrix :: IO [[Integer]]
getIntMatrix = map readIntList . BS.lines <$> BS.getContents

getIntTuple :: IO (Integer, Integer)
getIntTuple = readIntTuple <$> BS.getLine

getIntNTuples :: Integral a => a -> IO [(Integer, Integer)]
getIntNTuples n = map readIntTuple <$> replicateM (fromIntegral n) BS.getLine

getIntTuples :: IO [(Integer, Integer)]
getIntTuples = map readIntTuple . BS.lines <$> BS.getContents

main = do
  num <- getInt
  print $ solve $ map fromInteger [1 .. num]

solve nums = sum [1 | x <- nums, length (show x) `mod` 2 /= 0]
