#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,neg[1000005]={},pos[1000005]={};
ll c=0;
cin>>n>>k;
int arr[n];
for(int i=0;i<n;i++)
cin>>arr[i];
for(int i=0;i<n;i++)
{
if(arr[i]<0)
neg[abs(arr[i])]++;
else pos[arr[i]]++;
}
for(int i=0;i<n;i++)
{
if(arr[i]<0)
{
if(neg[abs(arr[i])])
{
if(k-arr[i]>=0&&k-arr[i]<=1000000)
{
if(pos[k-arr[i]])
{
c+=pos[k-arr[i]];
neg[abs(arr[i])]--;
}
}
if(k-arr[i]<0&&k-arr[i]>=-1000000)
{
if(neg[abs(k-arr[i])])
{
c+=neg[abs(k-arr[i])];
neg[abs(arr[i])]--;
}
}
}
}
if(arr[i]>=0)
{
if(pos[arr[i]])
{
if(k-arr[i]>=0&&k-arr[i]<=1000000)
{
if(pos[k-arr[i]])
{
c+=pos[k-arr[i]];
pos[arr[i]]--;
}
}
if(k-arr[i]<0&&k-arr[i]>=-1000000)
{
if(neg[abs(k-arr[i])])
{
c+=neg[abs(k-arr[i])];
pos[arr[i]]--;
}
}
}
}
}
cout<<c<<el;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZGQgZG91YmxlCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBwaSAzLjE0MTU5MjY1MzU5CiNkZWZpbmUgdWxsIHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIHllcyBjb3V0PDwiWUVTXG4iCiNkZWZpbmUgbm8gY291dDw8Ik5PXG4iCiNkZWZpbmUgZWwgIlxuIgojZGVmaW5lIEFyd2EgaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKI2RlZmluZSBmaXgoeCkgY291dDw8Zml4ZWQ8PHNldHByZWNpc2lvbih4KQpsbCBnY2QobGwgYSxsbCBiKSB7cmV0dXJuIGI9PTA/YTpnY2QoYixhJWIpO30KbGwgbGNtKGludCBhLGludCBiKSB7cmV0dXJuIGEvZ2NkKGEsYikqYjt9CmJvb2wgcHJpbWUobGwgbikKewoJaWYobj09MikgcmV0dXJuIHRydWU7CglpZihuJTI9PTB8fG49PTEpIHJldHVybiBmYWxzZTsKCWVsc2UgeyBmb3IobGwgaT0zOyBpKmk8PW47IGkrPTIpIHtpZihuJWk9PTApIHJldHVybiBmYWxzZTt9fXJldHVybiB0cnVlOwp9Ci8vaGVyZSB3ZSBnbyBhZ2FpbgppbnQgbWFpbigpCnsKICAgIEFyd2EKICAgIGludCB0PTE7CiAgICAvL2Npbj4+dDsKICAgIHdoaWxlKHQtLSkKICAgIHsKICAgICBpbnQgbixrLG5lZ1sxMDAwMDA1XT17fSxwb3NbMTAwMDAwNV09e307CiAgICAgbGwgYz0wOwogICAgIGNpbj4+bj4+azsKICAgICBpbnQgYXJyW25dOwogICAgIGZvcihpbnQgaT0wO2k8bjtpKyspCiAgICAgY2luPj5hcnJbaV07CiAgICAgZm9yKGludCBpPTA7aTxuO2krKykKICAgICB7CiAgICAgICAgIGlmKGFycltpXTwwKQogICAgICAgICBuZWdbYWJzKGFycltpXSldKys7CiAgICAgICAgIGVsc2UgcG9zW2FycltpXV0rKzsKICAgICB9CiAgICAgZm9yKGludCBpPTA7aTxuO2krKykKICAgICB7CiAgICAgICAgaWYoYXJyW2ldPDApCiAgICAgICAgewogICAgICAgIGlmKG5lZ1thYnMoYXJyW2ldKV0pCiAgICAgICAgewogICAgICAgICAgIGlmKGstYXJyW2ldPj0wJiZrLWFycltpXTw9MTAwMDAwMCkKICAgICAgICAgICB7CiAgICAgICAgICAgaWYocG9zW2stYXJyW2ldXSkgCiAgICAgICAgICAgewogICAgICAgICAgIGMrPXBvc1trLWFycltpXV07CiAgICAgICAgICAgbmVnW2FicyhhcnJbaV0pXS0tOwogICAgICAgICAgIH0KICAgICAgICAgICB9CiAgICAgICAgICAgaWYoay1hcnJbaV08MCYmay1hcnJbaV0+PS0xMDAwMDAwKQogICAgICAgICAgIHsKICAgICAgICAgICBpZihuZWdbYWJzKGstYXJyW2ldKV0pIAogICAgICAgICAgIHsKICAgICAgICAgICAgYys9bmVnW2FicyhrLWFycltpXSldOwogICAgICAgICAgICBuZWdbYWJzKGFycltpXSldLS07CiAgICAgICAgICAgfQogICAgICAgICAgIH0KICAgICAgICAKICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmKGFycltpXT49MCkKICAgICAgICB7CiAgICAgICAgaWYocG9zW2FycltpXV0pCiAgICAgICAgICAgewogICAgICAgICAgIGlmKGstYXJyW2ldPj0wJiZrLWFycltpXTw9MTAwMDAwMCkKICAgICAgICAgICB7CiAgICAgICAgICAgaWYocG9zW2stYXJyW2ldXSkgCiAgICAgICAgICAgewogICAgICAgICAgIGMrPXBvc1trLWFycltpXV07CiAgICAgICAgICAgcG9zW2FycltpXV0tLTsKICAgICAgICAgICB9CiAgICAgICAgICAgfQogICAgICAgICAgIGlmKGstYXJyW2ldPDAmJmstYXJyW2ldPj0tMTAwMDAwMCkKICAgICAgICAgICB7CiAgICAgICAgICAgaWYobmVnW2FicyhrLWFycltpXSldKSAKICAgICAgICAgICB7CiAgICAgICAgICAgIGMrPW5lZ1thYnMoay1hcnJbaV0pXTsKICAgICAgICAgICAgcG9zW2FycltpXV0tLTsKICAgICAgICAgICB9CiAgICAgICAgICAgfQogICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgfQogICAgIGNvdXQ8PGM8PGVsOwogICAgfQogICAgcmV0dXJuIDA7Cn0=