#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define dd double
#define ld long double
#define pi 3.14159265359
#define ull unsigned long long
#define yes cout<<"YES\n"
#define no cout<<"NO\n"
#define el "\n"
#define Arwa ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define fix(x) cout<<fixed<<setprecision(x)
ll gcd(ll a,ll b) {return b==0?a:gcd(b,a%b);}
ll lcm(int a,int b) {return a/gcd(a,b)*b;}
bool prime(ll n)
{
if(n==2) return true;
if(n%2==0||n==1) return false;
else { for(ll i=3; i*i<=n; i+=2) {if(n%i==0) return false;}}return true;
}
//here we go again
int main()
{
Arwa
int t=1;
//cin>>t;
while(t--)
{
int n,k;
cin>>n>>k;
int arr[n],frneg[1000001]={},frpos[1000001]={},count=0;
for(int i=0;i<n;i++)
cin>>arr[i];
for(int i=0;i<n;i++)
{
if(arr[i]<0)
frneg[-arr[i]]++;
else
frpos[arr[i]]++;
}
for(int i=0;i<n;i++)
{
if(arr[i]<0)
{
if(frneg[-arr[i]])
{
if(frpos[k-arr[i]])
count+=frpos[k-arr[i]];
else
count+=frneg[abs(k-arr[i])];
frneg[-arr[i]]--;
}
}
else
{
if(frpos[arr[i]])
{
if(frpos[k-arr[i]])
count+=frpos[k-arr[i]];
else
count+=frneg[abs(k-arr[i])];
frpos[arr[i]]--;
}
}
}
cout<<count<<el;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZGQgZG91YmxlCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBwaSAzLjE0MTU5MjY1MzU5CiNkZWZpbmUgdWxsIHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIHllcyBjb3V0PDwiWUVTXG4iCiNkZWZpbmUgbm8gY291dDw8Ik5PXG4iCiNkZWZpbmUgZWwgIlxuIgojZGVmaW5lIEFyd2EgaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKI2RlZmluZSBmaXgoeCkgY291dDw8Zml4ZWQ8PHNldHByZWNpc2lvbih4KQpsbCBnY2QobGwgYSxsbCBiKSB7cmV0dXJuIGI9PTA/YTpnY2QoYixhJWIpO30KbGwgbGNtKGludCBhLGludCBiKSB7cmV0dXJuIGEvZ2NkKGEsYikqYjt9CmJvb2wgcHJpbWUobGwgbikKewoJaWYobj09MikgcmV0dXJuIHRydWU7CglpZihuJTI9PTB8fG49PTEpIHJldHVybiBmYWxzZTsKCWVsc2UgeyBmb3IobGwgaT0zOyBpKmk8PW47IGkrPTIpIHtpZihuJWk9PTApIHJldHVybiBmYWxzZTt9fXJldHVybiB0cnVlOwp9Ci8vaGVyZSB3ZSBnbyBhZ2FpbgppbnQgbWFpbigpCnsKICAgIEFyd2EKICAgIGludCB0PTE7CiAgICAvL2Npbj4+dDsKICAgIHdoaWxlKHQtLSkKICAgIHsKICAgICBpbnQgbixrOwogICAgIGNpbj4+bj4+azsKICAgICBpbnQgYXJyW25dLGZybmVnWzEwMDAwMDFdPXt9LGZycG9zWzEwMDAwMDFdPXt9LGNvdW50PTA7CiAgICAgZm9yKGludCBpPTA7aTxuO2krKykKICAgICBjaW4+PmFycltpXTsKICAgICBmb3IoaW50IGk9MDtpPG47aSsrKQogICAgIHsKICAgICAgICAgaWYoYXJyW2ldPDApCiAgICAgICAgIGZybmVnWy1hcnJbaV1dKys7CiAgICAgICAgIGVsc2UgCiAgICAgICAgIGZycG9zW2FycltpXV0rKzsKICAgICB9CiAgICAgZm9yKGludCBpPTA7aTxuO2krKykKICAgICB7CiAgICAgICBpZihhcnJbaV08MCkKICAgICAgIHsKICAgICAgICAgIGlmKGZybmVnWy1hcnJbaV1dKSAKICAgICAgICAgIHsKICAgICAgICAgICAgICBpZihmcnBvc1trLWFycltpXV0pCiAgICAgICAgICAgICAgY291bnQrPWZycG9zW2stYXJyW2ldXTsKICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgY291bnQrPWZybmVnW2FicyhrLWFycltpXSldOwogICAgICAgICAgICAgIGZybmVnWy1hcnJbaV1dLS07CiAgICAgICAgICB9CiAgICAgICB9CiAgICAgICBlbHNlCiAgICAgICB7CiAgICAgICAgIGlmKGZycG9zW2FycltpXV0pIAogICAgICAgICAgewogICAgICAgICAgICAgIGlmKGZycG9zW2stYXJyW2ldXSkKICAgICAgICAgICAgICBjb3VudCs9ZnJwb3Nbay1hcnJbaV1dOwogICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICBjb3VudCs9ZnJuZWdbYWJzKGstYXJyW2ldKV07CiAgICAgICAgICAgICAgZnJwb3NbYXJyW2ldXS0tOwogICAgICAgICAgfSAgCiAgICAgICB9CiAgICAgfQogICAgIGNvdXQ8PGNvdW50PDxlbDsKICAgICAKICAgIH0KICAgIAogICAgcmV0dXJuIDA7Cn0=