#include <stdio.h>
#include<iomanip>
#include<iostream>
#include<iostream>
#include <algorithm>
#include<string.h>
#include<string>
#include<cmath>
#include<queue>
#include<map>
#include<set>
#include<bits/stdc++.h>
using namespace std;
#pragma warning(disable:4996)
#define inf 0x3f3f3f3f
#define PI 3.1415926535898
const double eps = 1e-7;
typedef long long LL;
#define ll long long
//LL GCD(LL a, LL b)
//{
//	if (b == 0)
//		return a;
//	return GCD(b, a % b);
//}

//LL fac[N], inv[N];
//LL quick_pow(LL a, LL b)
//{
//	LL ans = 1 % mod;
//	while (b) {
//		if (b & 1) ans = (ans * a) % mod;
//		b >>= 1;
//		a = (a * a) % mod;
//	}
//	return ans;
//}
//void init()
//{
//	fac[0] = 1;
//	inv[0] = 1;
//	for (int i = 1; i <= N - 2; i++)
//	{
//		fac[i] = (fac[i - 1] * i) % mod;
//		inv[i] = quick_pow(fac[i], mod - 2);
//	}
//}
//LL C(LL a, LL b)	//计算组合数C(a, b)
//{
//	if (a < b || b < 0) return 0;
//	return fac[a] * ((inv[a - b] * inv[b]) % mod) % mod;
//}

//LL n;
//LL a[N], c[N], d[N];
//void add(LL x, LL v)
//{
//	LL i = x;
//	while (x <= (n << 1))
//	{
//		c[x] += v;
//		d[x] += v * (i - 1);
//		x += (x & -x);
//	}
//}
//LL sum(LL x)
//{
//	LL res = 0, i = x;
//	while (x > 0)
//	{
//		res += i * c[x] - d[x];
//		x -= x & -x;
//	}
//	return res;
//}

//int prime[N];
//int vis[N];
//void get_prime()
//{
//	for (int i = 2; i < N; i++)
//	{
//		if (!vis[i])
//		{
//			prime[++prime[0]] = i;
//		}
//		for (int j = 1; j <= prime[0] && i * prime[j] < N; j++)
//		{
//			vis[i * prime[j]] = 1;
//			if (i % prime[j] == 0)
//				break;
//		}
//	}
//}

//struct no {
//	LL first;
//	int id;
//	no() {}
//	no(LL first, int id) :first(first), id(id) {}
//	bool operator<(const no& a)const
//	{
//		return first < a.first;//da顶堆
//	}
//};

LL mod = 1e9 + 7;
const LL N = 3e5 + 10;
LL n, m, t;
LL a[N], b[N], c[N], aa[3];
int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	/*srand((int)time(0));*/
	//freopen("C:\\Users\\Lenovo\\Desktop\\test\\in.txt", "r", stdin);
	//freopen("C:\\Users\\Lenovo\\Desktop\\test\\out.txt", "w", stdout);
	int n1, n2, n3;
	cin >> n1 >> n2 >> n3;
	LL sum1 = 0, sum2 = 0, sum3 = 0;
	LL m1 = 1e17, m2 = 1e17, m3 = 1e17;
	for (int i = 0; i < n1; i++)
	{
		cin >> a[i];
		m1 = min(a[i], m1);
		sum1 += a[i];
	}
	for (int i = 0; i < n2; i++)
	{
		cin >> b[i];
		m2 = min(b[i], m2);
		sum2 += b[i];
	}
	for (int i = 0; i < n3; i++)
	{
		cin >> c[i];
		m3 = min(c[i], m3);
		sum3 += c[i];
	}
	LL all = sum1 + sum2 + sum3;
	LL ans=-1e17;
	ans = max(ans, sum1 + sum2 - sum3);
	ans = max(ans, sum1 + sum3 - sum2);
	ans = max(ans, sum2 + sum3 - sum1);
	ans = max(ans, all - 2 * (m1 + m2));
	ans = max(ans, all - 2 * (m1 + m3));
	ans = max(ans, all - 2 * (m3 + m2));
	cout << ans << "\n";
}