import Data.Ord (comparing)
import Data.List (sortBy)
import Control.Monad (replicateM)


toInt :: String -> Int
toInt = read

toInts :: String -> (Int, Int)
toInts =
    let
        toTuple = \[a, b] -> (a, b)
    in
        toTuple . map toInt . words

sortByTime :: [(Int, Int)] -> [(Int, Int)]
sortByTime = sortBy $ comparing snd

works :: [(Int, Int)] -> [(Int, Int)]
works = 
    let
        work acc t = (fst t + fst acc, snd t)
    in
        tail . scanl work (0, 0)


-- App Entry
-- ============================================================================
main :: IO ()
main = do
    n <- toInt <$> getLine
    pairs <- map toInts <$> replicateM n getLine

    let accepts = \t -> fst t <= snd t
    let check = takeWhile accepts . works . sortByTime

    let count = length $ check pairs

    print (if n == count then "Yes" else "No")