import           Control.Monad
import qualified Data.ByteString.Char8 as BS
import           Data.Foldable
import           Data.Maybe
import qualified Data.Sequence         as Seq

readInt = fst . fromJust . BS.readInt
readIntList = map readInt . BS.words
getInt = readInt <$> BS.getLine
getIntList = readIntList <$> BS.getLine

main = do
  [i, j, a, b, c] <- getIntList
  ps <- getIntList
  qs <- getIntList
  rs <- getIntList

  let ps' = toList $ Seq.unstableSortBy (flip compare) $ Seq.fromList ps
      qs' = toList $ Seq.unstableSortBy (flip compare) $ Seq.fromList qs
      rs' = toList $ Seq.unstableSortBy (flip compare) $ Seq.fromList rs

      solve x y s1 s2 s3 res | x == 0 && y == 0 = res
      solve x y s1 s2 [] res | x > 0     = solve (x-1) y (tail s1) s2 [] (res + head s1)
                             | otherwise = solve x (y-1) s1 (tail s2) [] (res + head s2)
      solve x y s1 s2 s3 res = let p = if (x>0) then head s1 else 10^10
                                   q = if (y>0) then head s2 else 10^10
                                   r = head s3
                               in if p <= q
                                  then if p >= r
                                       then solve (x-1) y (tail s1) s2 s3 (res+p)
                                       else solve (x-1) y s1 s2 (tail s3) (res+r)
                                  else if q >= r
                                       then solve x (y-1) s1 (tail s2) s3 (res+q)
                                       else solve x (y-1) s1 s2 (tail s3) (res+r)

  print $ solve i j ps' qs' rs' 0