--[[
食べる数の領域確保
rとgの最小の数を比較
小さい方をaの最大と比較
]]
local r_eat, g_eat, r_num, g_num, a_num 
= io.read("*n", "*n", "*n", "*n", "*n")

function writeList(num)
    local list = {}
    for i = 1, num do
        list[i] = io.read("*n")
    end
    return list
end

local r_taste = writeList(r_num)
local g_taste = writeList(g_num)
local a_taste = writeList(a_num)

table.sort(r_taste); table.sort(g_taste); table.sort(a_taste)
for i = 1, r_num - r_eat do
    table.remove(r_taste, 1)
end
for i = 1, g_num - g_eat do
    table.remove(g_taste, 1)
end

while true do
    local a_taste_len = a_taste[#a_taste]
    if a_taste_len and (r_taste[1] <= g_taste[1]) and (r_taste[1] < a_taste_len) then
        table.remove(r_taste, 1)
        table.insert(r_taste, table.remove(a_taste))
    elseif a_taste_len and (g_taste[1] < r_taste[1]) and (g_taste[1] < a_taste_len) then
        table.remove(g_taste, 1)
        table.insert(g_taste, table.remove(a_taste))
    else
        break
    end
end

local result = 0
for i = 1, r_eat do
    result = result + r_taste[i]
end
for i = 1, g_eat do
    result = result + g_taste[i]
end

print(result)