#include <bits/stdc++.h>
using namespace std;
using i64 = int64_t;
using vi = vector<i64>;
using vvi = vector<vi>;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    cout.setf(ios::fixed);
    cout.precision(10);
    unordered_map<i64, int> cnt;
    i64 n, v;
    cin >> n >> v;
    vvi as(4, vi(n));
    for (int i = 0; i < 4; i++) {
        for (int j = 0; j < n; j++) {
            cin >> as[i][j];
        }
    }

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cnt[as[2][i] + as[3][j]]++;
        }
    }

    i64 ans = 0;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            i64 tmp = as[0][i] + as[1][j];
            i64 res = v - tmp;
            ans += cnt[res];
        }
    }

    cout << ans << endl;
}
