#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
long long a[N];
long n;
long long s=0,m,l=0;
long long tknp(long long a[],long long dau,long long cuoi,long long k)
{
long long res=-1;
while(dau<=cuoi)
{
long long giua=(dau+cuoi)/2;
if(a[giua]<k)
{
res=giua;
dau=giua+1;
}
else cuoi=giua-1;
}
return res;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++) cin>>a[i];
sort(a+1,a+n+1);
for(int i=1;i<=n;i++)
{
l=tknp(a,i+1,n,m-a[i]);
if(l!=-1) s=s+l-i;
}
cout<<s;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgaW50IE49MWU2KzU7CmxvbmcgbG9uZyBhW05dOwpsb25nIG47CmxvbmcgbG9uZyBzPTAsbSxsPTA7CmxvbmcgbG9uZyB0a25wKGxvbmcgbG9uZyBhW10sbG9uZyBsb25nIGRhdSxsb25nIGxvbmcgY3VvaSxsb25nIGxvbmcgaykKewogICAgbG9uZyBsb25nIHJlcz0tMTsKICAgIHdoaWxlKGRhdTw9Y3VvaSkKICAgIHsKICAgICAgICBsb25nIGxvbmcgZ2l1YT0oZGF1K2N1b2kpLzI7CiAgICAgICAgaWYoYVtnaXVhXTxrKQogICAgICAgIHsKICAgICAgICAgICAgcmVzPWdpdWE7CiAgICAgICAgICAgIGRhdT1naXVhKzE7CiAgICAgICAgfQogICAgICAgIGVsc2UgY3VvaT1naXVhLTE7CiAgICB9CiAgICByZXR1cm4gcmVzOwp9CmludCBtYWluKCkKewogICAgY2luPj5uPj5tOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspIGNpbj4+YVtpXTsKICAgIHNvcnQoYSsxLGErbisxKTsKICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKQogICAgewogICAgICAgIGw9dGtucChhLGkrMSxuLG0tYVtpXSk7CiAgICAgICAgaWYobCE9LTEpIHM9cytsLWk7CiAgICB9CiAgICBjb3V0PDxzOwp9Cg==