//AUTHOR: Vivek Shah (@vivek_shah98)
#include <bits/stdc++.h>
#define boost ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
#define ll long long
#define mod 1000000007
#define debug(x) cout << #x << " is " << x << endl;
#define debug1 cout << "YES" <<endl;
#define llt int test;cin>>test;while(test--)
#define pb push_back
#define setto(n) cout << fixed<< setprecision(n)
#define fi first
#define se second
#define sz(i) int(i.size())
#define all(v) v.begin(),v.end()
#define mem(a, b) memset(a, b, sizeof(a))
#define rep(i, begin, end) for (__typeof(end) i = (begin) - ((begin) > (end)); i != (end) - ((begin) > (end)); i += 1 - 2 * ((begin) > (end)))
#define F(i,n) rep(i,0,n)
#define len(s) s.length()
#define MAX 1000
using namespace std;
int A[MAX], n, k, len0, len, len1;
int dp[MAX][51][51];
int longest_subseq(int ix, int available_k, int last_val){
if(dp[ix][available_k][last_val] >= 0)
return dp[ix][available_k][last_val];
if (ix == n or available_k < 0)
return 0;
len0 = longest_subseq(ix+1, available_k, last_val);
if (abs(A[ix] - last_val) > available_k)//don't include
return dp[ix][available_k][last_val] = len0;
len1 = 1 + longest_subseq(ix+1, available_k-abs(A[ix]-last_val), A[ix]);
return dp[ix][available_k][last_val] = max(len0, len1);
}
int main(){
boost;
cin>>n>>k;
rep(i,0,n)
rep(j,0,51)
rep(k,0,51)
dp[i][j][k] = -INT_MAX;
F(i,n)cin>>A[i];
int xx = longest_subseq(0, k, A[0]);
cout<<xx;
// int ans[MAX], ma = INT_MIN;
// for (int i = 0; i <n ; ++i){
// ans[i] = -INT_MAX;
// for (int j = 0; j <51 ; ++j)
// for (int k = 0; k <51 ; ++k)
// ans[i] = max(ans[i], dp[i][j][k]);
// ma = max(ans[i], ma);
// }
// cout<<max(ma, xx);
return 0;
}
// 4 5
// 1 2 50 6
//Ans = 3
// 9 10
// 5 2 4 9 1 3 2 4 5
//Ans = 7
// 5 0
// 1 1 1 1 1
//Ans = 5
Ly9BVVRIT1I6IFZpdmVrIFNoYWggKEB2aXZla19zaGFoOTgpCiAKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiAKI2RlZmluZSBib29zdCBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTtjaW4udGllKE5VTEwpO2NvdXQudGllKE5VTEwpCiNkZWZpbmUgbGwgbG9uZyBsb25nIAojZGVmaW5lIG1vZCAxMDAwMDAwMDA3CiNkZWZpbmUgZGVidWcoeCkgY291dCA8PCAjeCA8PCAiIGlzICIgPDwgeCA8PCBlbmRsOwojZGVmaW5lIGRlYnVnMSBjb3V0IDw8ICJZRVMiIDw8ZW5kbDsKI2RlZmluZSBsbHQgaW50IHRlc3Q7Y2luPj50ZXN0O3doaWxlKHRlc3QtLSkKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBzZXR0byhuKSBjb3V0IDw8IGZpeGVkPDwgc2V0cHJlY2lzaW9uKG4pCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBzeihpKSBpbnQoaS5zaXplKCkpCiNkZWZpbmUgYWxsKHYpIHYuYmVnaW4oKSx2LmVuZCgpCiNkZWZpbmUgbWVtKGEsIGIpIG1lbXNldChhLCBiLCBzaXplb2YoYSkpCiNkZWZpbmUgcmVwKGksIGJlZ2luLCBlbmQpIGZvciAoX190eXBlb2YoZW5kKSBpID0gKGJlZ2luKSAtICgoYmVnaW4pID4gKGVuZCkpOyBpICE9IChlbmQpIC0gKChiZWdpbikgPiAoZW5kKSk7IGkgKz0gMSAtIDIgKiAoKGJlZ2luKSA+IChlbmQpKSkKI2RlZmluZSBGKGksbikgcmVwKGksMCxuKQojZGVmaW5lIGxlbihzKSBzLmxlbmd0aCgpCiNkZWZpbmUgTUFYIDEwMDAKIAp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmludCBBW01BWF0sIG4sIGssIGxlbjAsIGxlbiwgbGVuMTsKCmludCBkcFtNQVhdWzUxXVs1MV07IAoKaW50IGxvbmdlc3Rfc3Vic2VxKGludCBpeCwgaW50IGF2YWlsYWJsZV9rLCBpbnQgbGFzdF92YWwpewogICAgaWYoZHBbaXhdW2F2YWlsYWJsZV9rXVtsYXN0X3ZhbF0gPj0gMCkKICAgICAgICByZXR1cm4gZHBbaXhdW2F2YWlsYWJsZV9rXVtsYXN0X3ZhbF07CiAKICAgIGlmIChpeCA9PSBuIG9yIGF2YWlsYWJsZV9rIDwgMCkKICAgICAgICByZXR1cm4gMDsKCiAgICBsZW4wID0gbG9uZ2VzdF9zdWJzZXEoaXgrMSwgYXZhaWxhYmxlX2ssIGxhc3RfdmFsKTsKICAgICAKICAgIGlmIChhYnMoQVtpeF0gLSBsYXN0X3ZhbCkgPiBhdmFpbGFibGVfaykvL2Rvbid0IGluY2x1ZGUKICAgICAgICByZXR1cm4gZHBbaXhdW2F2YWlsYWJsZV9rXVtsYXN0X3ZhbF0gPSBsZW4wOwoKICAgIGxlbjEgPSAxICsgbG9uZ2VzdF9zdWJzZXEoaXgrMSwgYXZhaWxhYmxlX2stYWJzKEFbaXhdLWxhc3RfdmFsKSwgQVtpeF0pOwogICAKICAgIHJldHVybiBkcFtpeF1bYXZhaWxhYmxlX2tdW2xhc3RfdmFsXSA9IG1heChsZW4wLCBsZW4xKTsKfQogCiAKaW50IG1haW4oKXsKIAogICAgYm9vc3Q7CiAgICAKICAgIGNpbj4+bj4+azsKICAgIAoKICAgIHJlcChpLDAsbikKICAgICAgICByZXAoaiwwLDUxKQogICAgICAgICAgICByZXAoaywwLDUxKQogICAgICAgICAgICAgICAgZHBbaV1bal1ba10gPSAtSU5UX01BWDsKICAgCiAgICBGKGksbiljaW4+PkFbaV07CgogICAgaW50IHh4ID0gbG9uZ2VzdF9zdWJzZXEoMCwgaywgQVswXSk7CiAgICBjb3V0PDx4eDsKCiAgICAvLyBpbnQgYW5zW01BWF0sIG1hID0gSU5UX01JTjsKICAgIC8vIGZvciAoaW50IGkgPSAwOyBpIDxuIDsgKytpKXsKICAgIC8vICAgICBhbnNbaV0gPSAtSU5UX01BWDsKICAgIC8vICAgICBmb3IgKGludCBqID0gMDsgaiA8NTEgOyArK2opCiAgICAvLyAgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDw1MSA7ICsraykKICAgIC8vICAgICAgICAgICAgIGFuc1tpXSA9IG1heChhbnNbaV0sIGRwW2ldW2pdW2tdKTsKICAgIC8vICAgICBtYSA9IG1heChhbnNbaV0sIG1hKTsKICAgIC8vIH0KICAgIAogICAgLy8gY291dDw8bWF4KG1hLCB4eCk7CgogICAgcmV0dXJuIDA7Cn0KIAovLyA0IDUKLy8gMSAyIDUwIDYKLy9BbnMgPSAzCgovLyA5IDEwCi8vIDUgMiA0IDkgMSAzIDIgNCA1Ci8vQW5zID0gNwoKLy8gNSAwIAovLyAxIDEgMSAxIDEgCi8vQW5zID0gNQ==