#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);
}