import Control.Applicative ((<$>), (<*>))

import Data.IntMap (IntMap)
import qualified Data.IntMap as IM

main :: IO ()
main = do
  getLine
  solve <$> getl (map read . words) <*> getl (map read . words) >>= putStrLn

solve :: [Int] -> [Int] -> String
solve xs ys = loop IM.empty 0 xs ys
  where
    loop :: IntMap Int -> Int -> [Int] -> [Int] -> String
    loop m mp [] [] = if mp >= IM.fold max 0 m then "YES" else "NO"
    loop m mp (p:ps) (n:ns) = if n == 0 then loop m (mp + p) ps ns
                              else loop (IM.insertWith (+) n p m) mp ps ns

getl :: (String -> a) -> IO a
getl f = f <$> getLine