import Control.Arrow
import Control.Monad
import Data.List
import qualified Data.ByteString.Char8 as B
import Data.Ord

main :: IO ()
main = readLn >>= readContents >>= putStrLn . solve 

solve :: [[Int]] -> String
solve = check . sortBy cmpf
    where
        cmpf lhs rhs = comparing last rhs lhs `mappend` comparing head rhs lhs
        check (x : xs) = inner (last x) $ x : xs

        inner t xxs@([a, b] : xs)
            | t < 0 = "No"
            | b < t = inner b xxs
            | t - a < 0 = "No"
            | otherwise = inner (t - a) xs
        inner _ _ = "Yes"

readLine :: IO [Int]
readLine = unfoldr (fmap (second (maybe B.empty snd . B.uncons)) . B.readInt) <$> B.getLine

readContents :: Int -> IO [[Int]]
readContents = flip replicateM readLine