// #include <bits/stdc++.h>للاسف مش بينفع هنا
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <cmath>
#include <map>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <queue>
#include <stack>
#include <deque>
#include <bitset>
#include <utility>
#include <limits>
#include <iomanip>
#include <sstream>
#include <tuple>
#include <numeric>
#include <functional>
#include <array>
using namespace std;
#define mahmoud \
ios_base::sync_with_stdio(0); \
cin.tie(NULL);
typedef long long ll;
int main() {
mahmoud;
int n, k;
cin >> n >> k;
const int ofset = 1000000;
vector<int>freq(2000001);
vector<int> v;
int x;
while (n--)
{
cin >> x;
v.push_back(x);
freq[x + ofset]++;
}int num1,num2;
int count = 0;
for (int i = 0;i < freq.size() - 1;i++)
{
if (freq[i] > 0) {
num1 = i - ofset;
for (int j = i + 1;j < freq.size();j++)
{
if (freq[j] > 0) {
num2 = j - ofset;
if (num1 + num2 == k)
{
count += (freq[i] * freq[j]);
}
}
}
}
}
cout << count;
return 0;
}
Ci8vICNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPtmE2YTYp9iz2YEg2YXYtCDYqNmK2YbZgdi5INmH2YbYpwojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxjbWF0aD4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CiNpbmNsdWRlIDx1bm9yZGVyZWRfc2V0PgojaW5jbHVkZSA8cXVldWU+CiNpbmNsdWRlIDxzdGFjaz4KI2luY2x1ZGUgPGRlcXVlPgojaW5jbHVkZSA8Yml0c2V0PgojaW5jbHVkZSA8dXRpbGl0eT4KI2luY2x1ZGUgPGxpbWl0cz4KI2luY2x1ZGUgPGlvbWFuaXA+CiNpbmNsdWRlIDxzc3RyZWFtPgojaW5jbHVkZSA8dHVwbGU+CiNpbmNsdWRlIDxudW1lcmljPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KI2luY2x1ZGUgPGFycmF5Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIG1haG1vdWQgICAgICAgICAgICAgICAgIFwKICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBcCiAgY2luLnRpZShOVUxMKTsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CgoKaW50IG1haW4oKSB7CiAgICBtYWhtb3VkOwogICAgCiAgICBpbnQgbiwgazsKICAgIGNpbiA+PiBuID4+IGs7CiAgICBjb25zdCBpbnQgb2ZzZXQgPSAxMDAwMDAwOwogICAgdmVjdG9yPGludD5mcmVxKDIwMDAwMDEpOwogICAgdmVjdG9yPGludD4gdjsKICAgIGludCB4OwogICAgd2hpbGUgKG4tLSkKICAgIHsKICAgICAgICBjaW4gPj4geDsKICAgICAgICB2LnB1c2hfYmFjayh4KTsKICAgICAgICBmcmVxW3ggKyBvZnNldF0rKzsKICAgIH1pbnQgbnVtMSxudW0yOwogICAgaW50IGNvdW50ID0gMDsKICAgIGZvciAoaW50IGkgPSAwO2kgPCBmcmVxLnNpemUoKSAtIDE7aSsrKQogICAgewogICAgICAgIGlmIChmcmVxW2ldID4gMCkgewogICAgICAgICAgICBudW0xID0gaSAtIG9mc2V0OwogICAgICAgICAgICBmb3IgKGludCBqID0gaSArIDE7aiA8IGZyZXEuc2l6ZSgpO2orKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKGZyZXFbal0gPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgbnVtMiA9IGogLSBvZnNldDsKICAgICAgICAgICAgICAgICAgICBpZiAobnVtMSArIG51bTIgPT0gaykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ICs9IChmcmVxW2ldICogZnJlcVtqXSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgY291bnQ7CgogICAgcmV0dXJuIDA7Cn0KCg==