#include<bits/stdc++.h>
using namespace std;
int N,C,temp,jishuqi;multiset<int>M;bool zhongzhi{0};
int main(){
    cin>>N>>C;
    for(int i=0;i<N;++i){
        cin>>temp;
        M.insert(temp);
    }
    auto xiao=M.begin();
    if (M.upper_bound((*xiao))!=M.end()) {
        auto da=M.upper_bound((*xiao));
        while (1) {
            temp=(*da)-(*xiao);
            auto datemp =da;
            if (M.upper_bound((*da))==M.end()) {
                zhongzhi=1;
            }
            if (temp<C) {
                if (zhongzhi) {
                    xiao=M.upper_bound((*xiao));
                }else {
                    da=M.upper_bound((*da));
                }
            }else if (temp==C) {
                jishuqi+=(M.count((*da))*M.count((*xiao)));
                xiao=M.upper_bound((*xiao));
            }else {
                xiao=M.upper_bound((*xiao));
            }
            if (zhongzhi&&(da==xiao)) {
                break;
            }
        }
    }
    cout<<jishuqi;
    return 0;
}