#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int sum = 0;
struct Subject
{
int n;
int t[21];
};
struct Subject s[4];
int cmp(const void* a, const void* b){
return *(int*)b - *(int*)a;
}
void cnt(int i, int max, int n, int start){
if(start >= n){
sum += max;
return;
}
for(int j = start; j < n; j++){
if(max < s[i].t[j]){
max = s[i].t[j];
printf("%d\n",max);
cnt(i, max, n, j + 1);
}
else{
sum += s[i].t[j];
}
max -= s[i].t[j];
}
sum += max;
return;
}
int main()
{
memset(s, 0, sizeof(struct Subject) * 4);
scanf("%d %d %d %d",&s[0].n, &s[1].n, &s[2].n, &s[3].n);
for(int i = 0; i < 4; i++){
for(int j = 0; j < s[i].n; j++){
scanf("%d",&s[i].t[j]);
}
}
for(int i = 0; i < 4; i++){
if(s[i].n > 1){
qsort(s[i].t, s[i].n, sizeof(int), cmp);
int max = s[i].t[0];
cnt(i, max, s[i].n, 1);
}
else sum += s[i].t[0];
}
printf("%d",sum);
}