/* 
 * File:   lunch.cpp
 * Author: cteam032
 *
 * Created on October 24, 2015, 12:17 PM
 */

#include <cstdlib>
#include <iostream>
#include <set>

//#include <multiset>
using namespace std;

/*
 * 
 */
int main(int argc, char** argv) {

    long Limit, S, M, D, B;


    while (cin >> Limit >> S >> M >> D >> B) {
        long long sum = 0;
        if (S == 0 && M == 0 && D == 0 && B == 0) return 0;
        int tmp;
        multiset<int> s, m, d, b;

        for (int i = 0; i < S; i++) {
            cin >> tmp;
            s.insert(tmp);
        }
        for (int i = 0; i < M; i++) {
            cin >> tmp;
            m.insert(tmp);
        }
        for (int i = 0; i < D; i++) {
            cin >> tmp;
            d.insert(tmp);
        }
        for (int i = 0; i < B; i++) {
            cin >> tmp;
            b.insert(tmp);
        }

        //for(auto i = s.begin(); i != s.end(); i++)
        //  cout << *i;



        for (auto i = s.begin(); i != s.end(); i++) {
            long hledam = Limit - *i;
            auto pos = m.upper_bound(hledam);
            for (auto j = m.begin(); j != pos; j++) {
                long hledam2 = hledam - *j;
                auto pos2 = d.upper_bound(hledam2);
                for (auto k = d.begin(); k != pos2; k++) {
                    long hledam3 = hledam2;
                    hledam3 -= *k;
                    auto pos3 = b.upper_bound(hledam3);
                    for (auto u = b.begin(); u != pos3; u++)
                        sum++;
                }
            }
        }
        //cout << L << S << M << D << B;
        cout << sum << endl;
    }
    return 0;
}