module e;

import std.conv, std.stdio;
import std.algorithm, std.array, std.string, std.range;

void main()
{
    auto
        buf = readln.chomp.split.to!(int[]);
    immutable
        xEatRed = buf[0], yEatGreen = buf[1],
        aHaveRed = buf[2], bHaveGreen = buf[3], cHaveTrans = buf[4];
    auto
        pRed = readln.chomp.split.to!(int[]),
        qGreen = readln.chomp.split.to!(int[]),
        rTrans = readln.chomp.split.to!(int[]);
    pRed.sort!"a>b";
    qGreen.sort!"a>b";
    rTrans.sort!"a>b";
    auto answer = pRed[0..xEatRed].sum + qGreen[0..yEatGreen].sum;
    auto p = xEatRed - 1, q = yEatGreen - 1;
    foreach (trans; rTrans)
    {
        bool replaceRed()
        {
            if (pRed[p] < trans)
            {
                answer += trans - pRed[p];
                p -= 1;
                return false;
            }
            return true;
        }
        bool replaceGreen()
        {
            if (qGreen[q] < trans)
            {
                answer += trans - qGreen[q];
                q -= 1;
                return false;
            }
            return true;
        }
        if (p && q)
        {
            if (pRed[p] < qGreen[q])
            {
                if (replaceRed) break;
            }
            else
            {
                if (replaceGreen) break;
            }
        }
        else if (p)
        {
            if (replaceRed) break;
        }
        else if (q)
        {
            if (replaceGreen) break;
        }
        else break;
    }
    answer.writeln;
}
