from sys import stdin,setrecursionlimit

import heapq



x,y,a,b,c = list(map(int,stdin.readline().rstrip().split()))



p = list(map(int,stdin.readline().rstrip().split()))

q = list(map(int,stdin.readline().rstrip().split()))

r = list(map(int,stdin.readline().rstrip().split()))



p.sort()

q.sort()

r.sort(reverse = True)



p = p[a-x:]

q = q[b-y:]



heapq.heapify(p)

heapq.heapify(q)



for i in r:

    if p[0] <= q[0]:

        if i > p[0]:

            heapq.heappop(p)

            heapq.heappush(p,i)

    else:

        if i > q[0]:

            heapq.heappop(q)

            heapq.heappush(q,i)



print((sum(p)+sum(q)))
import heapq



x,y,a,b,c = list(map(int,input().split()))



p = list(map(int,input().split()))

q = list(map(int,input().split()))

r = list(map(int,input().split()))



#価値が小さいように並べる

p.sort()

q.sort()



#価値が大きいように並べる

r.sort(reverse = True)



#結局赤色上位x個,緑色上位y個だけ残せばよい

p = p[a-x:]

q = q[b-y:]



# heapqの形にする

heapq.heapify(p)

heapq.heapify(q)



#交換できる限り交換を行う

for i in r:

    if p[0] <= q[0]:

        if i > p[0]:

            heapq.heappop(p)

            heapq.heappush(p,i)

    else:

        if i > q[0]:

            heapq.heappop(q)

            heapq.heappush(q,i)



print((sum(p)+sum(q)))
from sys import stdin, setrecursionlimit
import heapq

x, y, a, b, c = list(map(int, stdin.readline().rstrip().split()))
p = list(map(int, stdin.readline().rstrip().split()))
q = list(map(int, stdin.readline().rstrip().split()))
r = list(map(int, stdin.readline().rstrip().split()))
p.sort()
q.sort()
r.sort(reverse=True)
p = p[a - x :]
q = q[b - y :]
heapq.heapify(p)
heapq.heapify(q)
for i in r:
    if p[0] <= q[0]:
        if i > p[0]:
            heapq.heappop(p)
            heapq.heappush(p, i)
    else:
        if i > q[0]:
            heapq.heappop(q)
            heapq.heappush(q, i)
print((sum(p) + sum(q)))

import heapq

x, y, a, b, c = list(map(int, input().split()))
p = list(map(int, input().split()))
q = list(map(int, input().split()))
r = list(map(int, input().split()))
# 価値が小さいように並べる
p.sort()
q.sort()
# 価値が大きいように並べる
r.sort(reverse=True)
# 結局赤色上位x個,緑色上位y個だけ残せばよい
p = p[a - x :]
q = q[b - y :]
# heapqの形にする
heapq.heapify(p)
heapq.heapify(q)
# 交換できる限り交換を行う
for i in r:
    if p[0] <= q[0]:
        if i > p[0]:
            heapq.heappop(p)
            heapq.heappush(p, i)
    else:
        if i > q[0]:
            heapq.heappop(q)
            heapq.heappush(q, i)
print((sum(p) + sum(q)))

-from sys import stdin, setrecursionlimit -x, y, a, b, c = list(map(int, stdin.readline().rstrip().split())) -p = list(map(int, stdin.readline().rstrip().split())) -q = list(map(int, stdin.readline().rstrip().split())) -r = list(map(int, stdin.readline().rstrip().split())) +x, y, a, b, c = list(map(int, input().split())) +p = list(map(int, input().split())) +q = list(map(int, input().split())) +r = list(map(int, input().split())) +# 価値が小さいように並べる +# 価値が大きいように並べる +# 結局赤色上位x個,緑色上位y個だけ残せばよい +# heapqの形にする +# 交換できる限り交換を行う