#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
constexpr int N = 1e6+10 ;
constexpr int inf = 1e9+10 ;
int fi[N][21],fa[N][21],a[N];
int fma(int l,int r){
int k=log2(r-l+1);
return max(fa[l][k],fa[r-(1<<k)+1][k]);
}
int fmi(int l,int r){
int k=log2(r-l+1);
return min(fi[l][k],fi[r-(1<<k)+1][k]);
}
inline ll rd(){
char c=getchar();ll s=0;bool f=1;
for(;c<'0'||c>'9';c=getchar())if(c=='-')f=0;
for(;c>='0'&&c<='9';c=getchar())s=(s<<3)+(s<<1)+(c^48);
return f?s:~(s-1);
}
int main()
{
int n=rd(),k=rd();
for(int i=1;i<=n;i++){
a[i]=rd();
fi[i][0]=fa[i][0]=a[i];
for(int j=1;j<=20;j++)
fi[i][j]=inf;
}
for(int j=1;j<21;j++)
for(int i=1;i+(1<<j)-1<=n;i++){
fi[i][j]=min(fi[i][j-1],fi[i+(1<<j-1)][j-1]);
fa[i][j]=max(fa[i][j-1],fa[i+(1<<j-1)][j-1]);
}
ll ans=0;
for(int i=1;i<=n;i++)
{
int l=i,r=n;
int ansl=-1;
while(l<=r){
int mid=l+r>>1;
if(fma(i,mid)-fmi(i,mid)>=k)r=mid-1,ansl=r+1;
else l=mid+1;
}
if(ansl==-1||fma(i,ansl)-fmi(i,ansl)!=k)continue;
int rl=i,rn=n,ansr=-1;
while(rl<=rn){
int mid=rl+rn>>1;
if(fma(i,mid)-fmi(i,mid)<=k)rl=mid+1,ansr=rl-1;
else rn=mid-1;
}
if(ansr!=-1){
ans+=ansr-ansl+1;
}
}
printf("%lld",ans);
}