#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define ld long double
#define db double
#define str string
#define pb push_back
#define nl '\n'
#define X first
#define Y second
#define nimble ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define all(v) (v).begin(),(v).end()
#define rall(v) rbegin(v),rend(v)
#define selp(a) for(auto i:a)cout<<i<<" ";cout<<nl;
#define mod(x,m) ((((x)%(m))+(m))%(m))
#define _sz(x) (int)x.size()
#define rep(i,a,b) for(int i=a;i<b;i++)
#define repv(v) for(int i=0;i<_sz(v);i++)
#define rep1(i,b,a) for(int i=b;i>=a;i--)
#define preci(x) fixed<<setprecision(x)
//ll MLG(ll n,ll b){ll a=0;while(n)a++,n/=b;return a-1;}

#define TRACE
#ifdef TRACE
#define see(...) __f(#__VA_ARGS__,__VA_ARGS__)
template <typename Arg1>
void __f(const char* name, Arg1&& arg1){
	cerr<<name<<" : "<<arg1<<nl;
}
template <typename Arg1, typename... Args>
void __f(const char* names, Arg1&& arg1, Args&&... args){
    const char* comma=strchr(names+1,',');cerr.write(names,comma-names)<<" : "<<arg1<<" | ";__f(comma+1, args...);
}
#else
#endif

int inf=0x3f3f3f3f;
ll infl=0x3f3f3f3f3f3f3f3fLL;
ld infd=1.0/0.0;
const ll MOD=1e9+7;// 998244353 // = (119<<23)+1
const db pi=2*acos(0.0);

int main(){
    nimble;
    int tt=1;//cin>>tt;
    while(tt--){
        int x,y,a,b,c;
        cin>>x>>y>>a>>b>>c;
        vector<ll> r(a);
        vector<ll> g(b);
        vector<ll> l(c);
        rep(i,0,a)cin>>r[i];
        rep(i,0,b)cin>>g[i];
        rep(i,0,c)cin>>l[i];
        sort(all(r),greater<ll>());
        sort(all(g),greater<ll>());
        sort(all(l),greater<ll>());
        ll ans=0;
        rep(i,0,x)ans+=r[i];
        rep(i,0,y)ans+=g[i];
        vector<ll> r1,g1;
        for(int i=0;i<x;i++)r1.pb(r[i]);
        for(int i=0;i<y;i++)g1.pb(g[i]);
        int hh=0;
        while(1){
            if(hh>=c)break;
            ll kj=l[hh];
            if(_sz(r1)==0 && _sz(g1)==0){
                break;
            }
            if(_sz(g1)==0){
                ll fr=r1.back();r1.pop_back();
                if(fr>=kj)
                    continue;
                ans+=kj;
                ans-=fr;
                hh++;
                continue;
            }
            if(_sz(r1)==0){
                ll gr=g1.back();g1.pop_back();
                if(gr>=kj)
                    continue;
                ans+=kj;
                ans-=gr;
                hh++;
                continue;
            }
            ll fr=r1.back();r1.pop_back();
            ll gr=g1.back();g1.pop_back();
            if(fr>=kj&&gr>=kj)break;
            if(kj>fr&&kj>gr){
                if(fr<gr){
                    ans-=fr;
                    ans+=kj;
                    g1.push_back(gr);
                    hh++;
                }
                else{
                    ans-=gr;
                    ans+=kj;
                    r1.push_back(fr);
                    hh++;
                }
                continue;
            }
            if(kj>fr&&gr>=kj){
                ans+=kj;
                ans-=fr;
                g1.push_back(gr);
                hh++;
                continue;
            }
            if(kj>gr&&fr>=kj){
                ans+=kj;
                ans-=gr;
                r1.push_back(fr);
                hh++;
                continue;
            }
        }
        cout<<ans<<nl;
    }
    return 0;
}


Measured memory_bytes: 4852