#include<iostream>
#include<unordered_map>
using namespace std;
const int N = 100010;
int arr[N];
unordered_map<int,int> map;//存储每个数出现的次数
int main(){
int n,sum;
cin>>n>>sum;
for(int i = 0 ; i < n ; i++)
{
cin>>arr[i];
map[arr[i]];
}
long long temp = 0;
for(int j = 0 ; j < n ; j) //利用二重循环就进行枚举就不会超时 三重循环必超时
{
for(int k = 0 ; k < n ; k++)
{
if(sum - arr[j] - arr[k] > 0) //存在第三个数
{
int b = sum - arr[j] - arr[k];
temp += map[b]; //有多少个这样数就加多少个
}
}
}
cout<<temp;
}