import qualified Data.Text as T
import qualified Data.Text.IO as T
import qualified Data.Text.Read as T

main :: IO ()
main = do
  [a, b, c] <- map unsafeTextToInt . T.words <$> T.getLine :: IO [Int]
  k <- unsafeTextToInt <$> T.getLine :: IO Int
  let
    b' = until (a <) (* 2) b :: Int
    c' = until (b' <) (* 2) c :: Int
  putStrLn $ if (b' `div` b) * (c' `div` c) <= 2 ^ k then "Yes" else "No"

unsafeTextToInt :: T.Text -> Int
unsafeTextToInt s = case T.signed T.decimal s of
  Right (n, _) -> n
{-# INLINE unsafeTextToInt #-}
