module Main (main) where
import qualified Data.ByteString as BS
import qualified Data.ByteString.Char8 as B8
import Control.Monad
import Data.List
import Data.Function
import Data.Char
main :: IO ()
main = do
  n <- read <$> getLine
  js <- replicateM n $ do
    a:b:_ <- unfoldr (B8.readInt . B8.dropWhile isSpace) <$> BS.getLine
    return (a,b)
  putStrLn $ if solve js
             then "Yes"
             else "No"
  return ()

solve :: [(Int,Int)] -> Bool
solve xs = loop 0 $ sortBy (compare `on` snd) xs
  where
    loop :: Int -> [(Int,Int)] -> Bool
    loop t0 ((t,d):xs)
      | t0 + t <= d = loop (t0 + t) xs
      | otherwise  = False
    loop t0 [] = True
