#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 1e6 + 100;
ll a[N];
ll n , X;
void solve() {
ll res = 0;
int j = n , k = n; // con tro thu 2
// j la vi tri lon nhat ma a[i] + a[j] <= x
// k la vi tri nho nhat ma a[i] + a[k] >= x
for (int i = 1 ; i <= n ; i++) {
while (a[i] + a[j] > X) j--;
// đảm bảo vị trí k tiếp theo (k - 1) phải thoả mãn đk
// k > i
// a[i] + a[k] >= x
while (k - 1 > i && a[i] + a[k - 1] >= X) k--;
if (i >= j && i >= k) {
break;
}
// th dac biet
k = max(k,i + 1);
// cout << i << " " << k << " " << j << "\n";
if (a[i] + a[j] == X && a[i] + a[k] == X) {
res = res + j - k + 1;
}
}
cout << res << "\n";
}
int main() {
cin >> n >> X;
for (int i = 1 ; i <= n ; i++) cin >> a[i];
solve();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nIAp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBpbnQgTiA9IDFlNiArIDEwMDsKbGwgYVtOXTsKbGwgbiAsIFg7CiAKdm9pZCBzb2x2ZSgpIHsKIAogICAgbGwgcmVzID0gMDsKICAgIGludCBqID0gbiAsIGsgPSBuOyAvLyBjb24gdHJvIHRodSAyIAogICAgLy8gaiBsYSB2aSB0cmkgbG9uIG5oYXQgbWEgYVtpXSArIGFbal0gPD0geCAKICAgIC8vIGsgbGEgdmkgdHJpIG5obyBuaGF0IG1hIGFbaV0gKyBhW2tdID49IHggCiAgICBmb3IgKGludCBpID0gMSA7IGkgIDw9IG4gOyBpKyspIHsKICAgICAgICB3aGlsZSAoYVtpXSArIGFbal0gPiBYKSBqLS07IAogCiAgICAgICAgLy8gxJHhuqNtIGLhuqNvIHbhu4sgdHLDrSBrIHRp4bq/cCB0aGVvIChrIC0gMSkgcGjhuqNpIHRob+G6oyBtw6NuIMSRayAKICAgICAgICAvLyBrID4gaSAKICAgICAgICAvLyBhW2ldICsgYVtrXSA+PSB4IAogICAgICAgIHdoaWxlIChrIC0gMSA+IGkgJiYgYVtpXSArIGFbayAtIDFdID49IFgpIGstLTsgCiAgICAgICAgaWYgKGkgPj0gaiAgJiYgaSA+PSBrKSB7CiAgICAgICAgICAgIGJyZWFrOyAKICAgICAgICB9CiAKICAgICAgICAvLyB0aCBkYWMgYmlldCAKICAgICAgICBrID0gbWF4KGssaSArIDEpOwogCiAKICAgICAgLy8gIGNvdXQgPDwgaSA8PCAiICIgPDwgayA8PCAiICIgPDwgaiA8PCAiXG4iOwogCiAgICAgICAgaWYgKGFbaV0gKyBhW2pdID09IFggJiYgYVtpXSArIGFba10gPT0gWCkgewogICAgICAgICAgICByZXMgPSByZXMgKyAgaiAtIGsgKyAxOwogICAgICAgIH0KICAgIH0KIAogICAgY291dCA8PCByZXMgPDwgIlxuIjsKIAogCn0KIAppbnQgbWFpbigpIHsKIAogCiAgICBjaW4gPj4gbiA+PiBYOwogICAgZm9yIChpbnQgaSA9IDEgOyBpIDw9IG4gOyBpKyspIGNpbiA+PiBhW2ldOwogCiAgICBzb2x2ZSgpOwp9