#include <bits/stdc++.h>
using namespace std;
#define ms(s,n) memset(s,n,sizeof(s))
#define all(a) a.begin(),a.end()
#define present(t, x) (t.find(x) != t.end())
#define sz(a) int((a).size())
#define FOR(i, a, b) for (int i = (a); i < (b); ++i)
#define FORd(i, a, b) for (int i = (a) - 1; i >= (b); --i)
#define pb push_back
#define pf push_front
#define fi first
#define se second
#define mp make_pair
#define endl "\n"
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<int,int> pi;
typedef vector<int> vi;
typedef vector<pi> vii;
const int MOD = (int) 1e9+7;
const int INF = (int) 1e9+2804;
inline ll gcd(ll a,ll b){ll r;while(b){r=a%b;a=b;b=r;}return a;}
inline ll lcm(ll a,ll b){return a/gcd(a,b)*b;}
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
ll n, k; cin >> n >> k;
ll a[n];
for(ll &x : a) cin >> x;
multiset<ll> ms;
int l = 0;
ll ans = 0;
for(int r = 0; r < n; r++){
ms.insert(a[r]);
while(ms.size() >= 2 && (*ms.rbegin() - *ms.begin() > k)){
auto it = ms.find(a[l]);
ms.erase(it);
++l;
}
ans += r - l + 1;
}
cout << ans << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIG1zKHMsbikgbWVtc2V0KHMsbixzaXplb2YocykpCiNkZWZpbmUgYWxsKGEpIGEuYmVnaW4oKSxhLmVuZCgpCiNkZWZpbmUgcHJlc2VudCh0LCB4KSAodC5maW5kKHgpICE9IHQuZW5kKCkpCiNkZWZpbmUgc3ooYSkgaW50KChhKS5zaXplKCkpCiNkZWZpbmUgRk9SKGksIGEsIGIpIGZvciAoaW50IGkgPSAoYSk7IGkgPCAoYik7ICsraSkKI2RlZmluZSBGT1JkKGksIGEsIGIpIGZvciAoaW50IGkgPSAoYSkgLSAxOyBpID49IChiKTsgLS1pKQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIHBmIHB1c2hfZnJvbnQKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIG1wIG1ha2VfcGFpcgojZGVmaW5lIGVuZGwgIlxuIgoKCnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1bGw7CnR5cGVkZWYgbG9uZyBkb3VibGUgbGQ7CnR5cGVkZWYgcGFpcjxpbnQsaW50PiBwaTsKdHlwZWRlZiB2ZWN0b3I8aW50PiB2aTsKdHlwZWRlZiB2ZWN0b3I8cGk+IHZpaTsKCmNvbnN0IGludCBNT0QgPSAoaW50KSAxZTkrNzsKY29uc3QgaW50IElORiA9IChpbnQpIDFlOSsyODA0OwppbmxpbmUgbGwgZ2NkKGxsIGEsbGwgYil7bGwgcjt3aGlsZShiKXtyPWElYjthPWI7Yj1yO31yZXR1cm4gYTt9CmlubGluZSBsbCBsY20obGwgYSxsbCBiKXtyZXR1cm4gYS9nY2QoYSxiKSpiO30KCgppbnQgbWFpbigpewoJaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwoJY2luLnRpZShudWxscHRyKTsKCWxsIG4sIGs7IGNpbiA+PiBuID4+IGs7CglsbCBhW25dOwoJZm9yKGxsICZ4IDogYSkgY2luID4+IHg7CgltdWx0aXNldDxsbD4gbXM7CglpbnQgbCA9IDA7CglsbCBhbnMgPSAwOwoJZm9yKGludCByID0gMDsgciA8IG47IHIrKyl7CgkJbXMuaW5zZXJ0KGFbcl0pOwoJCXdoaWxlKG1zLnNpemUoKSA+PSAyICYmICgqbXMucmJlZ2luKCkgLSAqbXMuYmVnaW4oKSA+IGspKXsKCQkJYXV0byBpdCA9IG1zLmZpbmQoYVtsXSk7CgkJCW1zLmVyYXNlKGl0KTsKCQkJKytsOwoJCX0KCQlhbnMgKz0gciAtIGwgKyAxOwoJfSAKCWNvdXQgPDwgYW5zIDw8IGVuZGw7CglyZXR1cm4gMDsKfQoK