#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define P pair<ll,ll>
#define FOR(I,A,B) for(ll I = (A); I < (B); ++I)
#define FORR(I,A,B) for(ll I = (B-1); I >= (A); --I)
#define POSL(x,v) (lower_bound(x.begin(),x.end(),v)-x.begin()) //ai>=v  x is sorted
#define POSU(x,v) (upper_bound(x.begin(),x.end(),v)-x.begin()) //ai>v  x is sorted
#define NUM(x,v) (POSU(x,v)-POSL(x,v))  //x is sorted
const ll INF=1e18+7;
const ll MOD=1e9+7;


int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	ll N,V;
	cin >> N >> V;
	vector<ll> a(N),b(N),c(N),d(N);
	FOR(i,0,N)cin>>a[i];
	FOR(i,0,N)cin>>b[i];
	FOR(i,0,N)cin>>c[i];
	FOR(i,0,N)cin>>d[i];
	vector<ll> A,B;
	FOR(i,0,N)FOR(j,0,N)A.push_back(a[i]+b[j]);
	FOR(i,0,N)FOR(j,0,N)B.push_back(c[i]+d[j]);
	sort(A.begin(),A.end());
	sort(B.begin(),B.end());
	ll ans = 0;
	FOR(i,0,A.size()){
		ll x = A[i];
		ll xnum = NUM(A,x);
		i+=xnum;i--;
		ll y = V-x;
		ll ynum = NUM(B,y);
		ans += xnum * ynum;
	}
	cout << ans << endl;
}
