import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;
public class Main{
static int[] s = new int[5];
static ArrayList<Integer> a1 = new ArrayList(65);
static ArrayList<Integer> a2 = new ArrayList(65);
static ArrayList<Integer> a3 = new ArrayList(65);
static ArrayList<Integer> a4 = new ArrayList(65);
static int time_counts = 0;
//函数是用来把每个题目集缩减到一个题并同时记录做题的时间
static void f(ArrayList<Integer> a,int x) {
Collections.sort(a,Collections.reverseOrder());
//退出条件是——题目集就剩一道题
while(a.get(1) != 0) {
time_counts+= a.get(1);//每次加第二大的时间
//每次能同时做两道题
for(int i = 0; i <= 1;i++) {
a.set(i,a.get(i)-a.get(1));
}
Collections.sort(a,Collections.reverseOrder());//降序升序让第一个最小 持续减最小的数直到数组只有一个数
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//输入四个习题所包含的题数
for(int i = 1;i <= 4;i++){
s[i] = sc.nextInt();
}
//输入每套题并减为1道题
for(int i = 0;i < s[1];i++)
a1.add(sc.nextInt());
if(a1.size()>1)
f(a1,1);
for(int i = 0;i < s[2];i++)
a2.add(sc.nextInt());
if(a2.size()>1)
f(a2,2);
for(int i = 0;i < s[3];i++)
a3.add(sc.nextInt());
if(a3.size()>1)
f(a3,3);
for(int i = 0;i < s[4];i++)
a4.add(sc.nextInt());
if(a4.size()>1)
f(a4,4);
time_counts+=(a1.get(0)+a2.get(0)+a3.get(0)+a4.get(0));//加上最后剩下的四个题目
System.out.println(time_counts);
}
}