#include <bits/stdc++.h>
using namespace std;
int main() {
// your code goes here
int n,target;
cin>>n>>target;
int arr[n];
for(int i = 0; i < n; i++){
cin>>arr[i];
}
unordered_map<int,int> ump;
int cnt = 0;
for(int j = 0; j < n; j++){
int r1 = arr[j] + target;
int r2 = arr[j] - target;
//Here ump[r] tells us the frequency of targer-arr[j] in the left side of j
if (target == 0) {
// r1 == r2, so count only once
cnt += ump[r1];
}
else {
cnt += ump[r1];
cnt += ump[r2];
}
ump[arr[j]]++;
}
cout<<cnt<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCWludCBuLHRhcmdldDsKCWNpbj4+bj4+dGFyZ2V0OwoJaW50IGFycltuXTsKCWZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspewoJCWNpbj4+YXJyW2ldOwoJfQoJdW5vcmRlcmVkX21hcDxpbnQsaW50PiB1bXA7CgkKCWludCBjbnQgPSAwOwoJCglmb3IoaW50IGogPSAwOyBqIDwgbjsgaisrKXsKCQlpbnQgcjEgPSBhcnJbal0gKyB0YXJnZXQ7CgkJaW50IHIyID0gYXJyW2pdIC0gdGFyZ2V0OwoJCQoJCS8vSGVyZSB1bXBbcl0gdGVsbHMgdXMgdGhlIGZyZXF1ZW5jeSBvZiB0YXJnZXItYXJyW2pdIGluIHRoZSBsZWZ0IHNpZGUgb2YgagoJCQoJCWlmICh0YXJnZXQgPT0gMCkgewogICAgICAgICAgICAvLyByMSA9PSByMiwgc28gY291bnQgb25seSBvbmNlCiAgICAgICAgICAgIGNudCArPSB1bXBbcjFdOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAJY250ICs9IHVtcFtyMV07CiAgICAgICAgICAgIGNudCArPSB1bXBbcjJdOwogICAgICAgIH0KCQkKCQl1bXBbYXJyW2pdXSsrOwoJfQoJY291dDw8Y250PDxlbmRsOwoJcmV0dXJuIDA7Cn0=