#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <string>
#include<bits/stdc++.h>
#include<queue>
#include<deque>
#include<stack>
#include<set>
using namespace std;
void fast()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
}
void george_dictator_2()
{
int n,k;
cin>>n>>k;
vector<int>v(n);
vector<int>freq(2000001,0),freq_ne(2000001,0);
for(int i=0; i<n; i++)
{
cin>>v[i];
if(v[i]<0)
{
freq_ne[v[i]*-1]++;
}
else
{
freq[v[i]]++;
}
}
sort(v.begin(),v.end());
long long cont=0;
for(int i=0; i<n; i++)
{
int x=k-v[i];
if(x<0)
{
if(x==v[i])
{
cont+=freq_ne[x*-1]-1;
}
else{
cont+=freq_ne[x*-1];
}
}
else
{
if(x==v[i])
{
cont+=freq[x]-1;
}
else
{
cont+=freq[x];
}
}
if(v[i]<0)
{
if(freq_ne[v[i]*-1]>0)
{
freq_ne[v[i]*-1]--;
}
}
else
{
if(freq[v[i]]>0)
{
freq[v[i]]--;
}
}
}
cout<<cont;
}
int main()
{
fast();
george_dictator_2();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8aXRlcmF0b3I+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlPHF1ZXVlPgojaW5jbHVkZTxkZXF1ZT4KI2luY2x1ZGU8c3RhY2s+CiNpbmNsdWRlPHNldD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdm9pZCBmYXN0KCkKewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKICAgIGNvdXQudGllKG51bGxwdHIpOwoKCn0KCnZvaWQgZ2VvcmdlX2RpY3RhdG9yXzIoKQp7CiAgICBpbnQgbixrOwogICAgY2luPj5uPj5rOwogICAgdmVjdG9yPGludD52KG4pOwogICAgdmVjdG9yPGludD5mcmVxKDIwMDAwMDEsMCksZnJlcV9uZSgyMDAwMDAxLDApOwogICAgZm9yKGludCBpPTA7IGk8bjsgaSsrKQogICAgewogICAgICAgIGNpbj4+dltpXTsKICAgICAgICBpZih2W2ldPDApCiAgICAgICAgewogICAgICAgICAgICBmcmVxX25lW3ZbaV0qLTFdKys7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGZyZXFbdltpXV0rKzsKICAgICAgICB9CiAgICB9CiAgICBzb3J0KHYuYmVnaW4oKSx2LmVuZCgpKTsKICAgIGxvbmcgbG9uZyBjb250PTA7CgoKICAgICAgICBmb3IoaW50IGk9MDsgaTxuOyBpKyspCiAgICB7CiAgICAgICBpbnQgIHg9ay12W2ldOwoKICAgICAgICBpZih4PDApCiAgICAgICAgewogICAgICAgICAgaWYoeD09dltpXSkKICAgICAgICAgIHsKICAgICAgICAgICAgICBjb250Kz1mcmVxX25lW3gqLTFdLTE7CiAgICAgICAgICB9CgogICAgICAgICAgICBlbHNlewogICAgICAgICAgICAgICAgICAgIGNvbnQrPWZyZXFfbmVbeCotMV07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgaWYoeD09dltpXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY29udCs9ZnJlcVt4XS0xOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY29udCs9ZnJlcVt4XTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZih2W2ldPDApCiAgICAgICAgewogICAgICAgICAgICBpZihmcmVxX25lW3ZbaV0qLTFdPjApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGZyZXFfbmVbdltpXSotMV0tLTsKCiAgICAgICAgICAgIH0KCiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGlmKGZyZXFbdltpXV0+MCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZnJlcVt2W2ldXS0tOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgIH0KCiAgICBjb3V0PDxjb250OwoKfQoKCmludCBtYWluKCkKewogICAgZmFzdCgpOwoKCiAgICBnZW9yZ2VfZGljdGF0b3JfMigpOwoKCiAgICByZXR1cm4gMDsKfQo=