#include <fstream>
#include <vector>
#define MOD 99017
#define DIM 100000
using namespace std;
ifstream fin ("oite.in" );
ofstream fout("oite.out");
int N, M, L, S, i, j, V[DIM], nr;
vector <int> Hash[DIM];
void SetUp(){
fin >> N >> L;
for(i = 1; i <= N; i ++)
fin >> V[i];
return;
}
void Cauta(int val, int line){
vector<int>::iterator it;
for(it = Hash[line].begin(); it != Hash[line].end(); it ++){
if(val == *it) nr ++;
}
return;
}
void Hashing(){
for(i = 1; i < N; i ++){
for(j = i + 1; j <= N; j ++){
S = L - V[i] - V[j];
if(S < 0) continue;
Cauta(S, S%MOD);
}
for(j = 1; j < i; j ++){
S = V[i] + V[j];
Hash[S%MOD].push_back(S);
}
}
fout << nr;
return;
}
int main(){
SetUp();
Hashing();
return 0;
}