#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define int ll
#define endl '\n'
#define vll vector<ll>
#define input(arr) \
for (auto& i : arr) cin >> i
#define print(arr) \
for (auto& i : arr) cout << i << ' '; cout << '\n'
#define INF LLONG_MAX
#define YARAB_ACCEPT ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
ll dx[] = {0, 0, -1, 1, 1, 1, -1, -1};
ll dy[] = {-1, 1, 0, 0, -1, 1, -1, 1};
const ll N = 1e5 + 5;
void solve() {
ll n, t; cin >> n >> t;
vll L, R;
bool has_zero = 0;
for (ll i = 0; i < n; ++i) {
ll x; cin >> x;
if (!x) {
has_zero = 1;
continue;
}
(x < 0? L.push_back(-x) : R.push_back(x));
}
sort(L.begin(), L.end());
sort(R.begin(), R.end());
ll ans = 0;
for (ll i = 0; i <= L.size(); ++i) {
ll dist_left = (i == 0? 0 : L[i - 1]);
if (dist_left > t) break;
ll time_to_origin = t - 2 * dist_left;
ll dist_right = 0;
if (time_to_origin > 0) {
dist_right = upper_bound(R.begin(), R.end(), time_to_origin) - R.begin();
}
ans = max(ans, i + dist_right);
}
for (ll i = 0; i <= R.size(); ++i) {
ll dist_right = (i == 0? 0 : R[i - 1]);
if (dist_right > t) break;
ll time_to_origin = t - 2 * dist_right;
ll dist_left = 0;
if (time_to_origin > 0) {
dist_left = upper_bound(L.begin(), L.end(), time_to_origin) - L.begin();
}
ans = max(ans, i + dist_left);
}
cout << (has_zero? ans + 1 : ans) << '\n';
}
signed main() {
YARAB_ACCEPT
ll t = 1;
// cin >> t;
while (t--)
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBpbnQgbGwKI2RlZmluZSBlbmRsICdcbicKI2RlZmluZSB2bGwgdmVjdG9yPGxsPgojZGVmaW5lIGlucHV0KGFycikgXAogICAgZm9yIChhdXRvJiBpIDogYXJyKSBjaW4gPj4gaQojZGVmaW5lIHByaW50KGFycikgXAogICAgZm9yIChhdXRvJiBpIDogYXJyKSBjb3V0IDw8IGkgPDwgJyAnOyBjb3V0IDw8ICdcbicKI2RlZmluZSBJTkYgTExPTkdfTUFYCiNkZWZpbmUgWUFSQUJfQUNDRVBUIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKG51bGxwdHIpOyBjb3V0LnRpZShudWxscHRyKTsKCmxsIGR4W10gPSB7MCwgMCwgLTEsIDEsIDEsIDEsIC0xLCAtMX07CmxsIGR5W10gPSB7LTEsIDEsIDAsIDAsIC0xLCAxLCAtMSwgMX07CmNvbnN0IGxsIE4gPSAxZTUgKyA1OwoKdm9pZCBzb2x2ZSgpIHsKICAgIGxsIG4sIHQ7IGNpbiA+PiBuID4+IHQ7CiAgICB2bGwgTCwgUjsKICAgIGJvb2wgaGFzX3plcm8gPSAwOwoKICAgIGZvciAobGwgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICBsbCB4OyBjaW4gPj4geDsKICAgICAgICBpZiAoIXgpIHsKICAgICAgICAgICAgaGFzX3plcm8gPSAxOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CgogICAgICAgICh4IDwgMD8gTC5wdXNoX2JhY2soLXgpIDogUi5wdXNoX2JhY2soeCkpOwogICAgfQoKICAgIHNvcnQoTC5iZWdpbigpLCBMLmVuZCgpKTsKICAgIHNvcnQoUi5iZWdpbigpLCBSLmVuZCgpKTsKCiAgICBsbCBhbnMgPSAwOwoKICAgIGZvciAobGwgaSA9IDA7IGkgPD0gTC5zaXplKCk7ICsraSkgewogICAgICAgIGxsIGRpc3RfbGVmdCA9IChpID09IDA/IDAgOiBMW2kgLSAxXSk7CiAgICAgICAgaWYgKGRpc3RfbGVmdCA+IHQpIGJyZWFrOwoKICAgICAgICBsbCB0aW1lX3RvX29yaWdpbiA9IHQgLSAyICogZGlzdF9sZWZ0OwogICAgICAgIGxsIGRpc3RfcmlnaHQgPSAwOwogICAgICAgIGlmICh0aW1lX3RvX29yaWdpbiA+IDApIHsKICAgICAgICAgICAgZGlzdF9yaWdodCA9IHVwcGVyX2JvdW5kKFIuYmVnaW4oKSwgUi5lbmQoKSwgdGltZV90b19vcmlnaW4pIC0gUi5iZWdpbigpOwogICAgICAgIH0KCiAgICAgICAgYW5zID0gbWF4KGFucywgaSArIGRpc3RfcmlnaHQpOwogICAgfQoKICAgIGZvciAobGwgaSA9IDA7IGkgPD0gUi5zaXplKCk7ICsraSkgewogICAgICAgIGxsIGRpc3RfcmlnaHQgPSAoaSA9PSAwPyAwIDogUltpIC0gMV0pOwogICAgICAgIGlmIChkaXN0X3JpZ2h0ID4gdCkgYnJlYWs7CgogICAgICAgIGxsIHRpbWVfdG9fb3JpZ2luID0gdCAtIDIgKiBkaXN0X3JpZ2h0OwogICAgICAgIGxsIGRpc3RfbGVmdCA9IDA7CiAgICAgICAgaWYgKHRpbWVfdG9fb3JpZ2luID4gMCkgewogICAgICAgICAgICBkaXN0X2xlZnQgPSB1cHBlcl9ib3VuZChMLmJlZ2luKCksIEwuZW5kKCksIHRpbWVfdG9fb3JpZ2luKSAtIEwuYmVnaW4oKTsKICAgICAgICB9CgogICAgICAgIGFucyA9IG1heChhbnMsIGkgKyBkaXN0X2xlZnQpOwogICAgfQoKICAgIGNvdXQgPDwgKGhhc196ZXJvPyBhbnMgKyAxIDogYW5zKSA8PCAnXG4nOwp9CgpzaWduZWQgbWFpbigpIHsKICAgIFlBUkFCX0FDQ0VQVAogICAgbGwgdCA9IDE7CiAgICAvLyBjaW4gPj4gdDsKICAgIHdoaWxlICh0LS0pCiAgICAgICAgc29sdmUoKTsKCiAgICByZXR1cm4gMDsKfQ==