#include <stdio.h>
#include <stdlib.h>

int comp(const void* a, const void* b)
{
    int arg1 = *(const int*)a;
    int arg2 = *(const int*)b;
 
    if (arg1 < arg2) return -1;
    if (arg1 > arg2) return 1;
    return 0;

}
int s[2000],m[2000],d[2000],b[2000];

int main()
{
long long L,S,M,D,B;
long long i,j,k,l;
long long sum = 0;
while(1){
scanf("%Ld %Ld %Ld %Ld %Ld",&L,&S,&M,&D,&B);
if ((L == 0) && (S == 0) && (M == 0) && (D == 0) && (B == 0)) return 0;
for (i = 0; i<S;i++){
scanf("%d",&s[i]);
}
for (i = 0; i<M;i++){
scanf("%d",&m[i]);
}
for (i = 0; i<D;i++){
scanf("%d",&d[i]);
}
for (i = 0; i<B;i++){
scanf("%d",&b[i]);
}
sum=0;
qsort(s,S,sizeof(int),comp);
qsort(m,M,sizeof(int),comp);
qsort(d,D,sizeof(int),comp);
qsort(b,B,sizeof(int),comp);
long long  s1,s2;
for (i = 0; i<S;i++){
if (s[i] >= L) break;

for (j = 0; j<M;j++){
s1 = s[i] + m[j];
if (s1 >= L) break;
for (k = 0; k<D;k++){
s2 = s1 + d[k];
if ((s2) >= L) break;
for (l = 0; l<B;l++){
if((s[i] + m[j] + d[k] + b[l])<=L)
sum++;
else
break;

}

}

}

}


printf("%Ld\n",sum);
}






return 0;

}