# -*- coding: utf-8 -*-

import sys

import math

import os

import itertools

import string

import heapq

import _collections

from collections import Counter

from collections import defaultdict

from functools import lru_cache

import bisect

import re

import queue

from decimal import *





class Scanner():

    @staticmethod

    def int():

        return int(sys.stdin.readline().rstrip())



    @staticmethod

    def string():

        return sys.stdin.readline().rstrip()



    @staticmethod

    def map_int():

        return [int(x) for x in Scanner.string().split()]



    @staticmethod

    def string_list(n):

        return [eval(input()) for i in range(n)]



    @staticmethod

    def int_list_list(n):

        return [Scanner.map_int() for i in range(n)]



    @staticmethod

    def int_cols_list(n):

        return [int(eval(input())) for i in range(n)]





class Math():

    @staticmethod

    def gcd(a, b):

        if b == 0:

            return a

        return Math.gcd(b, a % b)



    @staticmethod

    def lcm(a, b):

        return (a * b) // Math.gcd(a, b)



    @staticmethod

    def divisor(n):

        res = []

        i = 1

        for i in range(1, int(n ** 0.5) + 1):

            if n % i == 0:

                res.append(i)

                if i != n // i:

                    res.append(n // i)

        return res



    @staticmethod

    def round_up(a, b):

        return -(-a // b)



    @staticmethod

    def is_prime(n):

        if n < 2:

            return False

        if n == 2:

            return True

        if n % 2 == 0:

            return False

        d = int(n ** 0.5) + 1

        for i in range(3, d + 1, 2):

            if n % i == 0:

                return False

        return True





class PriorityQueue:

    def __init__(self, l=[]):

        self.q = l

        heapq.heapify(self.q)

        return



    def push(self, n):

        heapq.heappush(self.q, n)

        return



    def pop(self):

        return heapq.heappop(self.q)





def pop_count(x):

    x = x - ((x >> 1) & 0x5555555555555555)

    x = (x & 0x3333333333333333) + ((x >> 2) & 0x3333333333333333)

    x = (x + (x >> 4)) & 0x0f0f0f0f0f0f0f0f

    x = x + (x >> 8)

    x = x + (x >> 16)

    x = x + (x >> 32)

    return x & 0x0000007f





MOD = int(1e09) + 7

INF = int(1e15)





def main():

    # sys.stdin = open("sample.txt")

    X, Y, A, B, C = Scanner.map_int()

    P = Scanner.map_int()

    Q = Scanner.map_int()

    R = Scanner.map_int()

    P.sort(reverse=True)

    Q.sort(reverse=True)

    R.sort(reverse=True)

    P = P[:X]

    Q = Q[:Y]

    A = P + Q + R

    A.sort(reverse=True)

    print((sum(A[:X + Y])))





if __name__ == "__main__":

    main()

# -*- coding: utf-8 -*-

import sys

import math

import os

import itertools

import string

import heapq

import _collections

from collections import Counter

from collections import defaultdict

from collections import deque

from functools import lru_cache

import bisect

import re

import queue

import decimal





class Scanner():

    @staticmethod

    def int():

        return int(sys.stdin.readline().rstrip())



    @staticmethod

    def string():

        return sys.stdin.readline().rstrip()



    @staticmethod

    def map_int():

        return [int(x) for x in Scanner.string().split()]



    @staticmethod

    def string_list(n):

        return [Scanner.string() for i in range(n)]



    @staticmethod

    def int_list_list(n):

        return [Scanner.map_int() for i in range(n)]



    @staticmethod

    def int_cols_list(n):

        return [Scanner.int() for i in range(n)]





class Math():

    @staticmethod

    def gcd(a, b):

        if b == 0:

            return a

        return Math.gcd(b, a % b)



    @staticmethod

    def lcm(a, b):

        return (a * b) // Math.gcd(a, b)



    @staticmethod

    def divisor(n):

        res = []

        i = 1

        for i in range(1, int(n ** 0.5) + 1):

            if n % i == 0:

                res.append(i)

                if i != n // i:

                    res.append(n // i)

        return res



    @staticmethod

    def round_up(a, b):

        return -(-a // b)



    @staticmethod

    def is_prime(n):

        if n < 2:

            return False

        if n == 2:

            return True

        if n % 2 == 0:

            return False

        d = int(n ** 0.5) + 1

        for i in range(3, d + 1, 2):

            if n % i == 0:

                return False

        return True



    @staticmethod

    def fact(N):

        res = {}

        tmp = N

        for i in range(2, int(N ** 0.5 + 1) + 1):

            cnt = 0

            while tmp % i == 0:

                cnt += 1

                tmp //= i

            if cnt > 0:

                res[i] = cnt

        if tmp != 1:

            res[tmp] = 1

        if res == {}:

            res[N] = 1

        return res





def pop_count(x):

    x = x - ((x >> 1) & 0x5555555555555555)

    x = (x & 0x3333333333333333) + ((x >> 2) & 0x3333333333333333)

    x = (x + (x >> 4)) & 0x0f0f0f0f0f0f0f0f

    x = x + (x >> 8)

    x = x + (x >> 16)

    x = x + (x >> 32)

    return x & 0x0000007f





MOD = int(1e09) + 7

INF = int(1e15)





def solve():

    X, Y, A, B, C = Scanner.map_int()

    P = Scanner.map_int()

    Q = Scanner.map_int()

    R = Scanner.map_int()

    P.sort(reverse=True)

    P = P[:X]

    Q.sort(reverse=True)

    Q = Q[:Y]

    R.sort(reverse=True)

    R = R[:min(X + Y, C)]

    ans = P + Q + R

    ans.sort(reverse=True)

    print((sum(ans[:X + Y])))





def main():

    # sys.stdin = open("sample.txt")

    # T = Scanner.int()

    # for _ in range(T):

    #     solve()

    # print('YNeos'[not solve()::2])

    solve()





if __name__ == "__main__":

    main()

# -*- coding: utf-8 -*-
import sys
import math
import os
import itertools
import string
import heapq
import _collections
from collections import Counter
from collections import defaultdict
from functools import lru_cache
import bisect
import re
import queue
from decimal import *


class Scanner:
    @staticmethod
    def int():
        return int(sys.stdin.readline().rstrip())

    @staticmethod
    def string():
        return sys.stdin.readline().rstrip()

    @staticmethod
    def map_int():
        return [int(x) for x in Scanner.string().split()]

    @staticmethod
    def string_list(n):
        return [eval(input()) for i in range(n)]

    @staticmethod
    def int_list_list(n):
        return [Scanner.map_int() for i in range(n)]

    @staticmethod
    def int_cols_list(n):
        return [int(eval(input())) for i in range(n)]


class Math:
    @staticmethod
    def gcd(a, b):
        if b == 0:
            return a
        return Math.gcd(b, a % b)

    @staticmethod
    def lcm(a, b):
        return (a * b) // Math.gcd(a, b)

    @staticmethod
    def divisor(n):
        res = []
        i = 1
        for i in range(1, int(n**0.5) + 1):
            if n % i == 0:
                res.append(i)
                if i != n // i:
                    res.append(n // i)
        return res

    @staticmethod
    def round_up(a, b):
        return -(-a // b)

    @staticmethod
    def is_prime(n):
        if n < 2:
            return False
        if n == 2:
            return True
        if n % 2 == 0:
            return False
        d = int(n**0.5) + 1
        for i in range(3, d + 1, 2):
            if n % i == 0:
                return False
        return True


class PriorityQueue:
    def __init__(self, l=[]):
        self.q = l
        heapq.heapify(self.q)
        return

    def push(self, n):
        heapq.heappush(self.q, n)
        return

    def pop(self):
        return heapq.heappop(self.q)


def pop_count(x):
    x = x - ((x >> 1) & 0x5555555555555555)
    x = (x & 0x3333333333333333) + ((x >> 2) & 0x3333333333333333)
    x = (x + (x >> 4)) & 0x0F0F0F0F0F0F0F0F
    x = x + (x >> 8)
    x = x + (x >> 16)
    x = x + (x >> 32)
    return x & 0x0000007F


MOD = int(1e09) + 7
INF = int(1e15)


def main():
    # sys.stdin = open("sample.txt")
    X, Y, A, B, C = Scanner.map_int()
    P = Scanner.map_int()
    Q = Scanner.map_int()
    R = Scanner.map_int()
    P.sort(reverse=True)
    Q.sort(reverse=True)
    R.sort(reverse=True)
    P = P[:X]
    Q = Q[:Y]
    A = P + Q + R
    A.sort(reverse=True)
    print((sum(A[: X + Y])))


if __name__ == "__main__":
    main()

# -*- coding: utf-8 -*-
import sys
import math
import os
import itertools
import string
import heapq
import _collections
from collections import Counter
from collections import defaultdict
from collections import deque
from functools import lru_cache
import bisect
import re
import queue
import decimal


class Scanner:
    @staticmethod
    def int():
        return int(sys.stdin.readline().rstrip())

    @staticmethod
    def string():
        return sys.stdin.readline().rstrip()

    @staticmethod
    def map_int():
        return [int(x) for x in Scanner.string().split()]

    @staticmethod
    def string_list(n):
        return [Scanner.string() for i in range(n)]

    @staticmethod
    def int_list_list(n):
        return [Scanner.map_int() for i in range(n)]

    @staticmethod
    def int_cols_list(n):
        return [Scanner.int() for i in range(n)]


class Math:
    @staticmethod
    def gcd(a, b):
        if b == 0:
            return a
        return Math.gcd(b, a % b)

    @staticmethod
    def lcm(a, b):
        return (a * b) // Math.gcd(a, b)

    @staticmethod
    def divisor(n):
        res = []
        i = 1
        for i in range(1, int(n**0.5) + 1):
            if n % i == 0:
                res.append(i)
                if i != n // i:
                    res.append(n // i)
        return res

    @staticmethod
    def round_up(a, b):
        return -(-a // b)

    @staticmethod
    def is_prime(n):
        if n < 2:
            return False
        if n == 2:
            return True
        if n % 2 == 0:
            return False
        d = int(n**0.5) + 1
        for i in range(3, d + 1, 2):
            if n % i == 0:
                return False
        return True

    @staticmethod
    def fact(N):
        res = {}
        tmp = N
        for i in range(2, int(N**0.5 + 1) + 1):
            cnt = 0
            while tmp % i == 0:
                cnt += 1
                tmp //= i
            if cnt > 0:
                res[i] = cnt
        if tmp != 1:
            res[tmp] = 1
        if res == {}:
            res[N] = 1
        return res


def pop_count(x):
    x = x - ((x >> 1) & 0x5555555555555555)
    x = (x & 0x3333333333333333) + ((x >> 2) & 0x3333333333333333)
    x = (x + (x >> 4)) & 0x0F0F0F0F0F0F0F0F
    x = x + (x >> 8)
    x = x + (x >> 16)
    x = x + (x >> 32)
    return x & 0x0000007F


MOD = int(1e09) + 7
INF = int(1e15)


def solve():
    X, Y, A, B, C = Scanner.map_int()
    P = Scanner.map_int()
    Q = Scanner.map_int()
    R = Scanner.map_int()
    P.sort(reverse=True)
    P = P[:X]
    Q.sort(reverse=True)
    Q = Q[:Y]
    R.sort(reverse=True)
    R = R[: min(X + Y, C)]
    ans = P + Q + R
    ans.sort(reverse=True)
    print((sum(ans[: X + Y])))


def main():
    # sys.stdin = open("sample.txt")
    # T = Scanner.int()
    # for _ in range(T):
    #     solve()
    # print('YNeos'[not solve()::2])
    solve()


if __name__ == "__main__":
    main()

+from collections import deque -from decimal import * +import decimal -        return [eval(input()) for i in range(n)] +        return [Scanner.string() for i in range(n)] -        return [int(eval(input())) for i in range(n)] +        return [Scanner.int() for i in range(n)] - -class PriorityQueue: -    def __init__(self, l=[]): -        self.q = l -        heapq.heapify(self.q) -        return - -    def push(self, n): -        heapq.heappush(self.q, n) -        return - -    def pop(self): -        return heapq.heappop(self.q) +    @staticmethod +    def fact(N): +        res = {} +        tmp = N +        for i in range(2, int(N**0.5 + 1) + 1): +            cnt = 0 +            while tmp % i == 0: +                cnt += 1 +                tmp //= i +            if cnt > 0: +                res[i] = cnt +        if tmp != 1: +            res[tmp] = 1 +        if res == {}: +            res[N] = 1 +        return res -def main(): -    # sys.stdin = open("sample.txt") +def solve(): +    P = P[:X] +    Q = Q[:Y] -    P = P[:X] -    Q = Q[:Y] -    A = P + Q + R -    A.sort(reverse=True) -    print((sum(A[: X + Y]))) +    R = R[: min(X + Y, C)] +    ans = P + Q + R +    ans.sort(reverse=True) +    print((sum(ans[: X + Y]))) + + +def main(): +    # sys.stdin = open("sample.txt") +    # T = Scanner.int() +    # for _ in range(T): +    #     solve() +    # print('YNeos'[not solve()::2]) +    solve()