#include <iostream>
#include <cstdio>
#include <algorithm>
#include <map>
using namespace std;
int main() {
int n, d, x[100005], it;
long long int cnt1, cnt2, tmp=-1, ans=0, ma=0, mi=0, dif=0;
const int con=1e9+1;
map <int, int> m;
scanf("%d%d", &n, &d);
for(int i=0; i<n; i++) scanf("%d", &x[i]);
for(int i=1; i<n; i++) for(int j=x[i-1]; j<x[i]; j++) m[j]=i;
m[x[n-1]]=n;
for(int i=0; i<n; i++) {
if(x[i]+d>=x[n-1]) it=x[n-1];
else it=x[i]+d;
dif=m[it]-m[x[i]]+1;
if(dif>=3) {
if(m[it]==tmp) continue;
cnt1=1, cnt2=1;
for(int j=1; j<=dif; j++) cnt1*=j;
for(int j=1; j<=dif-3; j++) cnt2*=j;
ans+=cnt1/(cnt2*6);
tmp=m[it];
}
}
printf("%lld", ans);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8bWFwPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CglpbnQgbiwgZCwgeFsxMDAwMDVdLCBpdDsKCWxvbmcgbG9uZyBpbnQgY250MSwgY250MiwgdG1wPS0xLCBhbnM9MCwgbWE9MCwgbWk9MCwgZGlmPTA7Cgljb25zdCBpbnQgY29uPTFlOSsxOwoJbWFwIDxpbnQsIGludD4gbTsKCXNjYW5mKCIlZCVkIiwgJm4sICZkKTsKCWZvcihpbnQgaT0wOyBpPG47IGkrKykgc2NhbmYoIiVkIiwgJnhbaV0pOwoJZm9yKGludCBpPTE7IGk8bjsgaSsrKSBmb3IoaW50IGo9eFtpLTFdOyBqPHhbaV07IGorKykgbVtqXT1pOwoJbVt4W24tMV1dPW47Cglmb3IoaW50IGk9MDsgaTxuOyBpKyspIHsKCQlpZih4W2ldK2Q+PXhbbi0xXSkgaXQ9eFtuLTFdOwoJCWVsc2UgaXQ9eFtpXStkOwoJCWRpZj1tW2l0XS1tW3hbaV1dKzE7CgkJaWYoZGlmPj0zKSB7CgkJCWlmKG1baXRdPT10bXApIGNvbnRpbnVlOwoJCQljbnQxPTEsIGNudDI9MTsKCQkJZm9yKGludCBqPTE7IGo8PWRpZjsgaisrKSBjbnQxKj1qOwoJCQlmb3IoaW50IGo9MTsgajw9ZGlmLTM7IGorKykgY250Mio9ajsKCQkJYW5zKz1jbnQxLyhjbnQyKjYpOwoJCQl0bXA9bVtpdF07CgkJfQoJfQoJcHJpbnRmKCIlbGxkIiwgYW5zKTsKCXJldHVybiAwOwp9