#include<iostream>
using namespace std;
long long q[10000000];
long long left_bound(long long q[], long long l, long long r, long long x)
{
while (l < r)
{
long long mid = (l + r) / 2;
if (q[mid] >= x)r = mid;
else l = mid + 1;
}
return l;
}
long long right_bound(long long q[], long long l, long r, long x)
{
while (l < r)
{
long long mid = (l + r + 1) / 2;
if (q[mid] <= x)l = mid;
else r = mid - 1;
}
return l;
}
int main()
{
long long n, x;long long m = 0; cin >> n >> x;
for (long long i = 0; i < n; i++)cin >> q[i];
for (long long i = 0; i < n; i++)
{
long long k = q[i] - x;
long long begin = left_bound(q, 0, n - 1, k);
if (q[begin] == k)m++;
long long end = right_bound(q, 0, n - 1, k);
if (q[end] == k&&end!=begin)m++;
}
cout << m;
return 0;
}