open System

// prelude
let readStr () = stdin.ReadLine()

let readInt () = stdin.ReadLine() |> int
let readInts () = stdin.ReadLine().Split() |> Array.map int

let pair = function
| [|a; b|] -> (a, b)
| _ -> failwith "owatta"

let triple = function
| [|a; b; c|] -> (a, b, c)
| _ -> failwith "owatta"

let inc n = n + 1
let dec n = n - 1

let inline flip f a b = f b a
let rec fix f = fun x -> (f (fix f)) x

module Option =
  let getOr defaultValue = function
  | Some x -> x
  | None -> defaultValue

module Array =
  let modify (arr: _ []) i f =
    arr.[i] <- f arr.[i]

module Array2D =
  let modify (arr: _ [,]) i j f =
    arr.[i, j] <- f arr.[i, j]

// start
let (X, Y, A, B, C) =
  readInts()
  |> function
  | [|a; b; c; d; e|] -> (a, b, c, d, e)
  | _ -> failwith "owattta"
let p = readInts()
let q = readInts()
let r = readInts() |> Array.sortDescending

let pTopX = p |> Array.sortDescending |> Array.take X
let qTopY = q |> Array.sortDescending |> Array.take Y

seq {
  let mutable i = 0
  let mutable j = 0
  let mutable k = 0

  for _ in 1..(X+Y) do
    let vp = if i < X then pTopX.[i] else -1
    let vq = if j < Y then qTopY.[j] else -1
    let vr = if k < C then r.[k] else -1

    yield (
      if vp>vq && vp>vr then
        i <- i+1
        vp
       elif vq>vp && vq>vr then
        j <- j+1
        vq
      else
        k <- k+1
        vr
    )
}
|> Seq.sum
|> printfn "%d"

(*Array.concat [pTopX; qTopY; r]
|> Array.sortDescending
|> Array.take (X+Y)
|> Array.sum
|> printfn "%d"*)