#include <iostream>
#include <algorithm>
using namespace std;
int ans = 0, n = 0;
long long gum[100000];
int calculate(long long k)
{
int lb = 0, mb = 0, ub = n-1, Ans = -1;
while(lb <= ub)
{
mb = (ub+lb)/2;
if(gum[mb] < k)
{
lb = mb+1;
Ans = mb;
}
else
{
ub = mb-1;
}
}
return Ans;
}
int main()
{
int k = 0, num = 0;
bool keepLooping = true;
cin >> n;
cin >>k;
//long long gum[n];
for(int i=0; i<n; i++)
cin >> gum[i];
sort(gum, gum+n);
for(int i=0; i<n; i++)
{
num = max(0, (calculate(k-gum[i])-i));
ans += num;
}
cout << ans ;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBhbnMgPSAwLCBuID0gMDsKbG9uZyBsb25nIGd1bVsxMDAwMDBdOwoKaW50IGNhbGN1bGF0ZShsb25nIGxvbmcgaykKewoJaW50IGxiID0gMCwgbWIgID0gMCwgdWIgPSBuLTEsIEFucyA9IC0xOwoJd2hpbGUobGIgPD0gdWIpCgl7CgkJbWIgPSAgKHViK2xiKS8yOwoJCWlmKGd1bVttYl0gPCBrKQoJCXsKCQkJbGIgPSBtYisxOwoJCQlBbnMgPSBtYjsKCQl9CgkJZWxzZQoJCXsKCQkJdWIgPSBtYi0xOwoJCX0KCX0KCXJldHVybiBBbnM7Cn0KCmludCBtYWluKCkKewoJaW50IGsgPSAwLCBudW0gPSAwOwoJYm9vbCBrZWVwTG9vcGluZyA9IHRydWU7CgljaW4JPj4gbjsKCWNpbiA+Pms7CgkvL2xvbmcgbG9uZyBndW1bbl07Cglmb3IoaW50IGk9MDsgaTxuOyBpKyspCgkJY2luID4+IGd1bVtpXTsKCQkKCXNvcnQoZ3VtLCBndW0rbik7CgkKCWZvcihpbnQgaT0wOyBpPG47IGkrKykKCXsKCQludW0gPSBtYXgoMCwgKGNhbGN1bGF0ZShrLWd1bVtpXSktaSkpOwoJCWFucyArPSBudW07Cgl9CgkKCWNvdXQgPDwgYW5zIDsKCQoJcmV0dXJuIDA7Cn0=