using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;

public class Solve
{
    public static void Main(string[] args)
    {
        new ABC_E();
    }
}
public class ABC_A
{
    public ABC_A()
    {
        var s = Ex.Read;
        if (s[2] == s[3] && s[4] == s[5])
        {
            Ex.Cw("Yes");
        }
        else Ex.Cw("No");
    }
}
public class ABC_B
{
    public ABC_B()
    {
        var x = Ex.ReadLong;
        long ans = 0;
        ans += (x / 500) * 1000;
        x %= 500;
        ans += (x / 5) * 5;
        Ex.Cw($"{ans}");
    }
}
public class ABC_C
{
    public ABC_C()
    {
        var arr1 = Ex.ReadLongArray();
        //1周Kメートルの円形の湖があり
        var k = arr1[0];
        //その周りにN軒の家
        var n = arr1[1];

        //var r = k / Math.PI / 2;

        var arr = Ex.ReadLongArray();
        long[] a = new long[n];
        long prev = arr[0];
        for (long i = 1; i < n; i++)
        {
            var j = arr[i];
            a[i] = j - prev;
            prev = j;
        }

        a[0] = k - prev + arr[0];
        Array.Sort(a);

        long ans = 0;
        for (long i = 1; i < n; i++)
        {
            ans += a[i - 1];
        }
        Ex.Cw($"{ans}");
    }
}
public class ABC_D
{
    public ABC_D()
    {

    }
}
public class ABC_E
{
    public ABC_E()
    {
        var arr1 = Ex.ReadLongArray();
        // X個の赤色のリンゴとY個の緑色のリンゴを食べよう
        var x = arr1[0];
        var y = arr1[1];
        // A個の赤色
        var a = arr1[2];
        // B個の緑色
        var b = arr1[3];
        // C個の無色
        var c = arr1[4];


        var red = Ex.ReadLongArray();
        var green = Ex.ReadLongArray();
        var mu = Ex.ReadLongArray();
        Array.Sort(red);
        Array.Sort(green);
        Array.Sort(mu);
        //Array.Reverse(red);
        //Array.Reverse(green);
        //Array.Reverse(mu);


        long ii = red.Length;
        long jj = green.Length;
        long kk = mu.Length;
        long ans = 0;
        long i = x > ii ? x - ii : 0;
        long j = y > jj ? y - jj : 0;
        long k = 0;

        while (k < kk)
        {
            if (i < x && j < y && 0 <= ii - x + i && 0 <= jj - y + j)
            {
                var red_o = red[ii - x + i];
                var green_o = green[jj - y + j];
                var mu_o = mu[kk - 1 - k];

                long min = Math.Min(red_o, green_o);
                if (min < mu_o)
                {
                    ans -= min;
                    ans += mu_o;
                    k++;

                    if (red_o < green_o) i++;
                    else j++;
                }
                else break;
            }
            else if (i < x && 0 <= ii - x + i)
            {
                var red_o = red[ii - x + i];
                var mu_o = mu[kk - 1 - k];

                long min = red_o;
                if (min < mu_o)
                {
                    ans -= min;
                    ans += mu_o;
                    k++;
                    i++;
                }
                else break;
            }
            else if (j < y && 0 <= jj - y + j)
            {
                var green_o = green[jj - y + j];
                var mu_o = mu[kk - 1 - k];

                long min = green_o;
                if (min < mu_o)
                {
                    ans -= min;
                    ans += mu_o;
                    k++;
                    j++;
                }
                else break;
            }
        }

        for (int z = 0; z < x; z++)
        {
            if (0 > ii - x + z)
            {
                ans += mu[kk - 1 - k];
                k++;
            }
            else
            {
                ans += red[ii - x + z];
            }
        }

        for (int z = 0; z < y; z++)
        {
            if (0 > jj - y + z)
            {
                ans += mu[kk - 1 - k];
                k++;
            }
            else
            {
                ans += green[jj - y + z];
            }
        }

        Ex.Cw($"{ans}");
    }
}
public class ABC_F
{
    public ABC_F()
    {

    }
}
public static class Ex
{
    public static void Cw(string s)
    {
        Console.WriteLine(s);
    }

    public static string Read { get { return Console.ReadLine().Trim(); } }
    public static int ReadInt { get { return int.Parse(Read); } }
    public static long ReadLong { get { return long.Parse(Read); } }
    public static double ReadDouble { get { return double.Parse(Read); } }
    public static string[] ReadArray() { return Read.Split(' '); }
    public static int[] ReadIntArray() { return Read.Split(' ').Select(s => int.Parse(s)).ToArray(); }
    public static long[] ReadLongArray() { return Read.Split(' ').Select(s => long.Parse(s)).ToArray(); }
    public static string[] ReadArray(long N) { var ret = new string[N]; for (long i = 0; i < N; ++i) ret[i] = Read; return ret; }
    public static int[] ReadIntArray(long N) { var ret = new int[N]; for (long i = 0; i < N; ++i) ret[i] = ReadInt; return ret; }
    public static long[] ReadLongArray(long N) { var ret = new long[N]; for (long i = 0; i < N; ++i) ret[i] = ReadLong; return ret; }
}

Measured memory_bytes: 45976