#include <map>
#include <set>
#include <list>
#include <cmath>
#include <deque>
#include <stack>
#include <queue>
#include <bitset>
#include <cstdio>
#include <string>
#include <vector>
#include <random>
#include <chrono>
#include <utility>
#include <numeric>
#include <cstdlib>
#include <cstring>
#include <climits>
#include <sstream>
#include <assert.h>
#include <iostream>
#include <iomanip>
#include <algorithm>
#include <unordered_map>
using namespace std;
//Optimisations
#pragma GCC target ("avx2")
#pragma GCC optimization ("unroll-loops")
#pragma GCC optimize("O2")
//shortcuts for functions
#define pb push_back
#define mp make_pair
#define ff first
#define ss second
#define all(v) v.begin(),v.end()
#define prec(n) fixed<<setprecision(n)
#define n_l '\n'
// make it python
#define gcd __gcd
#define append push_back
#define str to_string
// utility functions shortcuts
#define max3(a,b,c) max(a,max(b,c))
#define min3(a,b,c) min(a,min(b,c))
#define sswap(a,b) {a=a^b;b=a^b;a=a^b;}
#define swap(a,b) {auto temp=a; a=b; b=temp;}
#define init(dp) memset(dp,-1,sizeof(dp));
#define set0(dp) memset(dp,0,sizeof(dp));
#define bits(x) __builtin_popcount(x)
#define SORT(v) sort(all(v))
#define endl "\n"
#define forr(i,n) for(ll i=0;i<n;i++)
// declaration shortcuts
typedef long long int ll;
#define int ll
// Constants
constexpr int dx[] = { -1, 0, 1, 0, 1, 1, -1, -1};
constexpr int dy[] = {0, -1, 0, 1, 1, -1, 1, -1};
constexpr ll INF = 1999999999999999997;
constexpr int inf = INT_MAX;
constexpr int MAXSIZE = int(1e6) + 5;
constexpr auto PI  = 3.14159265358979323846L;
constexpr auto oo  = numeric_limits<int>::max() / 2 - 2;
constexpr auto eps = 1e-6;
constexpr auto mod = 1000000007;
constexpr auto MOD = 1000000007;
constexpr auto MOD9 = 1000000009;
constexpr auto maxn = 100006;
//void IOfile(){
//freopen(file_name, reade_mode, stdin);
//freopen(file_name, write_mode, stdout);
//}
void fastio() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
}
int red[maxn];
int green[maxn];
int color[maxn];
vector<int>aa, bb;

int32_t main() {
	fastio();
	int x, y , a, b , c;
	cin >> x >> y >> a >> b >> c;
	vector<pair<int, int>>v;
	int ans = 0;
	vector<pair<int, int>>p;
	for (int i = 1; i <= a; i++) {
		cin >> red[i];
		aa.push_back(red[i]);
		p.push_back({red[i], 1});
	}
	sort(all(aa));
	reverse(all(aa));
	sort(red + 1, red + a + 1);
	reverse(red + 1, red + a + 1);
	for (int i = 1; i <= a ; i++) {
		red[i] += red[i - 1];
	}
	for (int i = 1; i <= b; i++) {
		int l;
		cin >> l;
		green[i] = l;
		bb.push_back(green[i]);
		v.push_back({l, 2});
	}
	sort(all(bb));
	reverse(all(bb));
	for (int i = 1; i <= c; i++) {
		int l;
		cin >> l;
		color[i] = l;
		v.push_back({l, 0});
		p.push_back({l, 0});
	}
	sort(green + 1 , green + b + 1);
	reverse(green + 1 , green + b + 1);
	for (int i = 1; i <= b ; i++) {
		green[i] += green[i - 1];
	}

	sort(color + 1, color + c + 1);
	reverse(color + 1, color + c + 1);
	sort(all(v));
	reverse(all(v));

	int cnt = 1;
	int sum = 0;
	for (int i = 0; i < y; i++) {
		sum += v[i].ff;
		if (v[i].ss == 0) cnt++;
	}
	sort(all(p));
	reverse(all(p));
	int m = 0, sss = 0;
	for (int i = 0; i < x ; i++) {
		sss += p[i].ff;
		if (p[i].ss == 0) m++;
	}
	ans = sum + red[x];
	ans = max(ans, sss + green[y]);
	int k = 0;

	for (int i = cnt; i <= c; i++) {
		k += color[i];
		if (x - ( i - cnt) - 1 >= 0)
			ans = max(ans, sum + k + red[x - (i - cnt ) - 1]);
	}
	k = 0;
	for (int i = m; i <= c; i++) {
		k += color[i];
		if (y - ( i - m) - 1 >= 0) {
			ans = max(ans, sss + k + green[y - (i - m) - 1]);
		}
	}
	x--, y--;
	int lll = red[x + 1] + green[y + 1];

	for (int i = 1; i <= c; i++) {
		if (x >= 0 and  y >= 0) {
			if (aa[x] <= bb[y] and color[i] > aa[x]) {
				lll -= aa[x];
				lll += color[i];
				x--;

			} else if (aa[x] >= bb[y] and color[i] > bb[y]) {
				//cout << lll << " ";
				lll -= bb[y];
				//cout << lll <<" ";
				lll += color[i];
				y--;
				//cout << lll << " ";
			}

		}
		else {
			if (x >= 0 and aa[x] < color[i]) {
				lll -= aa[x];
				lll += color[i];
				x--;
			} else if (y >= 0 and bb[y] > color[i]) {
				lll -= bb[y];
				lll += color[i];
				y--;
			}
		}
	}
	cout << lll;
}


Measured memory_bytes: 15412