#pragma GCC optimize("O3")
                #pragma comment(linker, "/stack:200000000")
                #pragma GCC optimize("unroll-loops")
                 
                #include <algorithm>
                #include <bitset>
                #include <cassert>
                #include <chrono>
                #include <cmath>
                #include <complex>
                #include <cstdio>
                #include <cstdlib>
                #include <cstring>
                #include <ctime>
                #include <deque>
                #include <functional>
                #include <iomanip>
                #include <iostream>
                #include <iterator>
                #include <limits>
                #include <climits>
                #include <list>
                #include <map>
                #include <numeric>
                #include <queue>
                #include <random>
                #include <ratio>
                #include <set>
                #include <sstream>
                #include <stack>
                #include <string>
                #include <unordered_map>
                #include <unordered_set>
                #include <utility>
                #include <vector>
                using namespace std;
                 
                typedef long long ll;
                typedef long double LD;
                #define int ll
                #define double LD
                #define pb push_back
                #define mp make_pair
                #define REP(i,n) for (int i = 0; i < n; i++)
                #define loop(i,n) for (int i = 0; i < n; i++)
                #define FOR(i,a,b) for (int i = a; i < b; i++)
                #define REPD(i,n) for (int i = n-1; i >= 0; i--)
                #define FORD(i,a,b) for (int i = a; i >= b; i--)
                #define remax(a,b) a = max(a,b)
                #define remin(a,b) a = min(a,b)
                #define mem(a, b) memset(a, b, sizeof a)
                #define append push_back
                #define all(v) v.begin(),v.end()
                #define F first
                #define S second
                #define print(x) cout << (x) << endl
                #define PRECISION(x) cout << fixed << setprecision(x)
                #define FAST_IO ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
                 
                const double PI=acos(-1);
                const int MOD = 1000000007;
                const int FMOD = 998244353;
                const double eps = 1e-9;
                 
                mt19937 RNG(chrono::steady_clock::now().time_since_epoch().count()); 
                int p[5000005];
                
             	signed main()
             	{
             		int x,y,a,b,c;
             		cin>>x>>y>>a>>b>>c;
             		vector<int> v1,v2,v3;
             		for(int i=0;i<a;i++)
             		{
             			int x;
             			cin>>x;
             			v1.push_back(x);
					 }
					 for(int i=0;i<b;i++)
					 {
					 	int x;
					 	cin>>x;
					 	v2.push_back(x);
					 }
					 for(int i=0;i<c;i++)
					 {
					 	int x;
					 	cin>>x;
					 	v3.push_back(x);
					 }
					 sort(v1.begin(),v1.end(),greater<int>());
					 sort(v2.begin(),v2.end(),greater<int>());
					 v1.erase(v1.begin()+x,v1.end());
					 v2.erase(v2.begin()+y,v2.end());
					 for(auto x:v2)
					 {
					 	v1.push_back(x);
					 }
					 for(auto x:v3)
					 {
					 	v1.push_back(x);
					 }
					 sort(v1.begin(),v1.end(),greater<int>());
					 int ans=0;
					 loop(i,x+y)
					 {
					 	ans+=v1[i];
					 }
					 cout<<ans;
				 }

Measured memory_bytes: 7920