#include<iostream>
using namespace std;
int s[10],a[10][25],Min=100000000,times;
void dfs(int t,int left,int right,int i)
{
if(t>4)
{
Min=min(Min,times);
return;
}
if(i>s[t])
{
times+=max(left,right);
dfs(t+1,0,0,1);
times-=max(left,right);
return;
}
dfs(t,left+a[t][i],right,i+1);
dfs(t,left,right+a[t][i],i+1);
return;
}
int main()
{
for(int i=1;i<=4;i++)
{
scanf("%d",&s[i]);
}
for(int i=1;i<=4;i++)
{
for(int j=1;j<=s[i];j++)
{
scanf("%d",&a[i][j]);
}
}
dfs(1,0,0,1);
printf("%d",Min);
return 0;
}