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.Reverse(red);
        Array.Reverse(green);


        long k = 0;
        long[] arr = new long[x + y + c];
        for (long i = 0; i < x && i < a; i++)
        {
            arr[k] = red[i];
            k++;
        }
        for (long i = 0; i < y && i < b; i++)
        {
            arr[k] = green[i];
            k++;
        }
        for (int i = 0; i < c; i++)
        {
            arr[k] = mu[i];
            k++;
        }
        long ans = arr.OrderByDescending(i => i).Take((int)(x + y)).Sum();

        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: 48528