#include <bits/stdc++.h>
#define VuDucNam ios_base::sync_with_stdio(false);
#define Lop9a6 cin.tie(NULL);
#define THCSPhamVanDong cout.tie(NULL);
#define ll long long
#define el cout << '\n'
#define sz(a) (ll) a.size()
#define all(a) a.begin(), a.end()
#define fi first
#define se second
#define fill(a, x) memset(a, x, sizeof(a))
#define file(name) \
if (fopen(name ".INP", "r")) \
{ \
freopen(name ".INP", "r", stdin); \
freopen(name ".OUT", "w", stdout); \
}
#define TIME (1.0 * clock() / CLOCKS_PER_SEC)
#define RUNTIME cerr << "\nRuntime: " << TIME << "s.\n"
using namespace std;
const ll MOD = 1e9 + 7;
const ll inf = LLONG_MAX;
int n;
ll k, ans = 0;
vector<ll> a;
unordered_map<ll, int> mp;
void solve()
{
cin >> n;
cin.ignore();
string s;
getline(cin, s);
cin >> k;
string tmp = "";
for (int i = 0; i < sz(s); ++i){
char c = s[i];
if (isdigit(c) || c == '-'){
if (c == '-' && tmp.empty()){
if (i + 1 < sz(s) && isdigit(s[i + 1]))
tmp.push_back(c);
else{
if (!tmp.empty()){
a.push_back(stoll(tmp));
tmp = "";
}
}
}
else{
tmp.push_back(c);
}
}else{
if (!tmp.empty()){
a.push_back(stoll(tmp));
tmp = "";
}
}
}
if (!tmp.empty()){
a.push_back(stoll(tmp));
}
for (int i = 0; i < sz(a); ++i){
ans += mp[k - a[i]];
mp[a[i]]++;
}
cout << ans;
el;
}
int main()
{
VuDucNam Lop9a6 THCSPhamVanDong
file("NHATKY");
solve();
RUNTIME;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgVnVEdWNOYW0gaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiNkZWZpbmUgTG9wOWE2IGNpbi50aWUoTlVMTCk7CiNkZWZpbmUgVEhDU1BoYW1WYW5Eb25nIGNvdXQudGllKE5VTEwpOwojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGVsIGNvdXQgPDwgJ1xuJwojZGVmaW5lIHN6KGEpIChsbCkgYS5zaXplKCkKI2RlZmluZSBhbGwoYSkgYS5iZWdpbigpLCBhLmVuZCgpCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBmaWxsKGEsIHgpIG1lbXNldChhLCB4LCBzaXplb2YoYSkpCiNkZWZpbmUgZmlsZShuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBpZiAoZm9wZW4obmFtZSAiLklOUCIsICJyIikpICAgICAgICAgICBcCiAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgZnJlb3BlbihuYW1lICIuSU5QIiwgInIiLCBzdGRpbik7ICBcCiAgICAgICAgZnJlb3BlbihuYW1lICIuT1VUIiwgInciLCBzdGRvdXQpOyBcCiAgICB9CiNkZWZpbmUgVElNRSAoMS4wICogY2xvY2soKSAvIENMT0NLU19QRVJfU0VDKQojZGVmaW5lIFJVTlRJTUUgY2VyciA8PCAiXG5SdW50aW1lOiAiIDw8IFRJTUUgPDwgInMuXG4iCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgbGwgTU9EID0gMWU5ICsgNzsKY29uc3QgbGwgaW5mID0gTExPTkdfTUFYOwoKaW50IG47CmxsIGssIGFucyA9IDA7CnZlY3RvcjxsbD4gYTsKdW5vcmRlcmVkX21hcDxsbCwgaW50PiBtcDsKCnZvaWQgc29sdmUoKQp7CiAgICBjaW4gPj4gbjsKICAgIGNpbi5pZ25vcmUoKTsKICAgIHN0cmluZyBzOwogICAgZ2V0bGluZShjaW4sIHMpOwogICAgY2luID4+IGs7CiAgICBzdHJpbmcgdG1wID0gIiI7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHN6KHMpOyArK2kpewogICAgICAgIGNoYXIgYyA9IHNbaV07CiAgICAgICAgaWYgKGlzZGlnaXQoYykgfHwgYyA9PSAnLScpewogICAgICAgICAgICBpZiAoYyA9PSAnLScgJiYgdG1wLmVtcHR5KCkpewogICAgICAgICAgICAgICAgaWYgKGkgKyAxIDwgc3oocykgJiYgaXNkaWdpdChzW2kgKyAxXSkpCiAgICAgICAgICAgICAgICAgICAgdG1wLnB1c2hfYmFjayhjKTsKICAgICAgICAgICAgICAgIGVsc2V7CiAgICAgICAgICAgICAgICAgICAgaWYgKCF0bXAuZW1wdHkoKSl7CiAgICAgICAgICAgICAgICAgICAgICAgIGEucHVzaF9iYWNrKHN0b2xsKHRtcCkpOwogICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSAiIjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgIHRtcC5wdXNoX2JhY2soYyk7CiAgICAgICAgICAgIH0KICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgaWYgKCF0bXAuZW1wdHkoKSl7CiAgICAgICAgICAgICAgICBhLnB1c2hfYmFjayhzdG9sbCh0bXApKTsKICAgICAgICAgICAgICAgIHRtcCA9ICIiOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgaWYgKCF0bXAuZW1wdHkoKSl7CiAgICAgICAgYS5wdXNoX2JhY2soc3RvbGwodG1wKSk7CiAgICB9CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHN6KGEpOyArK2kpewogICAgICAgIGFucyArPSBtcFtrIC0gYVtpXV07CiAgICAgICAgbXBbYVtpXV0rKzsKICAgIH0KICAgIGNvdXQgPDwgYW5zOwogICAgZWw7Cn0KCmludCBtYWluKCkKewogICAgVnVEdWNOYW0gTG9wOWE2IFRIQ1NQaGFtVmFuRG9uZwogICAgZmlsZSgiTkhBVEtZIik7CiAgICBzb2x2ZSgpOwogICAgUlVOVElNRTsKICAgIHJldHVybiAwOwp9Cg==