#include <bits/stdc++.h>
using namespace std;

int main() {
    int n, k;
    cin >> n >> k;

    vector<int> a(n);

    for(int i = 0; i < n; i++) {
        cin >> a[i];
    }

    

   unordered_map<int,int>mp;
   int cnt = 0;
      
  for(int i = 0 ; i < n ;i++){
  	
  	int cur = a[i] - k;
  	int cur1 = k + a[i];
  	
  	if(mp.find(cur) != mp.end()){
  		cnt += mp[cur];
  	}
  	
  	if(k != 0 && mp.find(cur1) != mp.end()){
  		cnt += mp[cur1];
  	}
  	mp[a[i]]++;
  }
   cout<<cnt;
    return 0;
}