#include<bits/stdc++.h>
#include<unordered_map>
using namespace std;
typedef long long ll;
typedef vector<ll> vll;
const ll M = 1000000007;

bool compare(vll x, vll y) {
    if (x[0] < y[0]) {
        return true;
    }
    return false;
}
void solve() {
    vector<vll> v(3);
    ll n1, n2, n3;
    cin >> n1 >> n2 >> n3;
    vll v1(n1), v2(n2), v3(n3);
    ll f1 = 0, f2 = 0;
    ll tsum = 0;
    for (ll i = 0; i < n1; i++) {
        cin >> v1[i];
        tsum += v1[i];
    }
    for (ll i = 0; i < n2; i++) {
        cin >> v2[i];
        tsum += v2[i];
    }
    for (ll i = 0; i < n3; i++) {
        cin >> v3[i];
        tsum += v3[i];
    }
    sort(v1.begin(), v1.end());
    sort(v2.begin(), v2.end());
    sort(v3.begin(), v3.end());
    v[0] = v1;
    v[1] = v2;
    v[2] = v3;
    sort(v.begin(), v.end(), compare);
    // for (int i = 0; i < 3; i++) {
        for (int j = 1; j < v[0].size(); j++) {
            f1 += v[0][j];
        }
        for (int j = 1; j < v[1].size(); j++) {
            f2 += v[1][j];
        }
    // }
    ll sub = 0;
    if (f1 == 0) {
        sub = 2 * v[0][0];
    } else if (f1 > 0 && f2 == 0) {
        if (v[1][0] > f1) {
            sub = 2 * v[0][0] + 2 * f1;
        } else {
            sub = 2 * v[1][0];
        }
    } else {
        sub = 2 * min(f2, v[0][0]) + 2 * min(f1, v[1][0]);
    }
    
    if (v[2].size() == 1) {
        sub = min(sub , 2 * v[2][0]);
    }
    cout << tsum - sub << endl;
}

int main() {
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    // This macro supported by cc, cf, cses
    #ifndef ONLINE_JUDGE
        freopen("in.txt", "r", stdin);
        freopen("out.txt", "w", stdout);
    #endif
    // int tt;
    // cin >> tt;
    // for(int i = 1; i <= tt; i++) {
        solve();
    // }
    return 0;
}