import Control.Monad
import Data.Maybe
import qualified Data.ByteString.Char8 as BS
import Data.Array.Unboxed
import Data.Bits
import Data.List
import qualified  Data.ByteString as B
import Data.Ord
import Data.Array.ST
-- import Data.Array.IO 
import Control.Monad.ST
import Data.List.Extra


bsToInt :: BS.ByteString -> Int
bsToInt = fst . fromJust . BS.readInt

bsToIntList :: BS.ByteString -> [Int]
bsToIntList = map bsToInt . BS.words

main :: IO ()
main = do
    a:b:c:d:_ <- bsToIntList <$> BS.getLine
    let aoki = length . takeWhile (>0) $ iterate (subtract b) c
    let taka = length . takeWhile (>0) $ iterate (subtract d) a
    let t1 = if taka >= aoki then "Yes" else "No"
    putStrLn t1