#include <bits/stdc++.h>

using namespace std;

#define F(i,L,U) for((i)=(L);(i)<(U);(i)++)
#define FE(i,L,U) for((i)=(L);(i)<=(U);(i)++)

long L,nfood[4];

long food[4][3000];

// long memo[4][100000005];

long ways(int id, int rem){
  if (rem < 0) return 0;
  
  if (id == 4) return 1;
  
  
//   if (memo[id][rem] != -1) return memo[id][rem];
  
  long sum = 0;
  
  int i;
  F(i,0,nfood[id]){
    sum += ways(id+1, rem - food[id][i]);
  }
  
  return sum;
//    return memo[id][rem] = sum;
}


int main(){
  int i, j;
  
  while(scanf("%ld %ld %ld %ld %ld", &L, &nfood[0],&nfood[1], &nfood[2], &nfood[3]), (L||nfood[0]||nfood[1]||nfood[2]||nfood[3])){
   
//     memset(memo, -1, sizeof memo);
  
    
    F(i,0,4){
	F(j,0,nfood[i]){
	  scanf("%ld", &food[i][j]);
	}
    }
    
    printf("%ld\n", ways(0,L));
  }

  return 0;
}

Diff to submission s459