import qualified Data.Vector.Unboxed as U
import qualified Data.ByteString.Char8 as C
import Debug.Trace
import Data.List
import Control.Monad
import Control.Arrow
import Data.Ord
import Data.Maybe
import Numeric
import Data.Char
import Text.Printf

r :: Int -> IO (U.Vector Int)
r n = U.unfoldrN n (C.readInt . C.dropWhile (==' ')) <$> C.getLine


r' :: IO [Int]
r'  =   unfoldr    (C.readInt . C.dropWhile (==' ')) <$> C.getLine


main :: IO ()
main = do
    [x,y,a,b,c] <- r'
    ps <- (replicate (x-a) 0 ++) <$> drop (a-x) <$> sort <$> r'
    qs <- (replicate (y-b) 0 ++) <$> drop (b-y) <$> sort <$> r'
    rs <- sortBy (flip compare) <$> r'
    print $ solve 0 ps qs rs



solve ac (x:xs) (y:ys) (r:rs)
    | x < y && x < r = solve (ac+r) xs (y:ys) rs
    | y < x && y < r = solve (ac+r) (x:xs) ys rs
    | otherwise = sum (x:xs) + sum (y:ys) + ac
solve ac   xxs   yys []
                = sum xxs + sum yys + ac
solve ac []     (y:ys) (r:rs)
    |          y < r = solve (ac+r) [] ys rs
    | otherwise = sum (y:ys) + ac
solve ac (x:xs)     [] (r:rs)
    |          x < r = solve (ac+r) xs [] rs
    | otherwise = sum (x:xs) + ac





