#include <bits/stdc++.h>
using namespace std;
#define int long long
#define vi vector<int>
#define fi first
#define se second
#define pb push_back
#define ii pair<int , int>
#define pq priority_queue
#define iii pair<int , pair<int , int>>
#define fo(i,l,r) for(int i=l;i<=r;i++)
#define fod(i,r,l) for(int i=r;i>=l;i--)
#define fill(f,x) memset(f,x,sizeof(f))
#define NAME "file"
const int N = 2e5 + 5, mod = 1e9 + 7;
int n , w , a[21] , p[21] , len = 0 , ts = 0 , ans = 0 , cur = 0;
void sol(int i)
{
if (i > n)
{
ans = max(ans , len);
}
else
{
p[i] = 0;
sol(i + 1);
int tem = cur; //giữ lại để tí nữa gán lại
if (a[i] > cur && ts + a[i] <= w) // nhánh cận: 2 điều kiện là dãy con phải là dãy tăng và tổng trọng số <= w
{
p[i] = i;
len++; // độ dài dãy đang xét
cur = a[i];
ts += a[i];
sol(i + 1); // chạy xong phải đưa lại như cũ
len--;
cur = tem;
ts -= a[i];
}
}
}
signed main()
{
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
//freopen(NAME".INP" , "r" , stdin);
//freopen(NAME".OUT" , "w" , stdout);
cin >> n >> w;
for (int i = 1 ; i <= n ; i++)
cin >> a[i];
sol(1);
cout << ans;
}
// haronnee_
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIHZpIHZlY3RvcjxpbnQ+CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBpaSBwYWlyPGludCAsIGludD4KI2RlZmluZSBwcSBwcmlvcml0eV9xdWV1ZQojZGVmaW5lIGlpaSBwYWlyPGludCAsIHBhaXI8aW50ICwgaW50Pj4KI2RlZmluZSBmbyhpLGwscikgZm9yKGludCBpPWw7aTw9cjtpKyspCiNkZWZpbmUgZm9kKGkscixsKSBmb3IoaW50IGk9cjtpPj1sO2ktLSkKI2RlZmluZSBmaWxsKGYseCkgbWVtc2V0KGYseCxzaXplb2YoZikpCiNkZWZpbmUgTkFNRSAiZmlsZSIKCmNvbnN0IGludCBOID0gMmU1ICsgNSwgbW9kID0gMWU5ICsgNzsKaW50IG4gLCB3ICwgYVsyMV0gLCBwWzIxXSAsIGxlbiA9IDAgLCB0cyA9IDAgLCBhbnMgPSAwICwgY3VyID0gMDsKCnZvaWQgc29sKGludCBpKQp7CiAgICBpZiAoaSA+IG4pCiAgICB7CiAgICAgICAgYW5zID0gbWF4KGFucyAsIGxlbik7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICBwW2ldID0gMDsKICAgICAgIHNvbChpICsgMSk7CiAgICAgICAKICAgICAgIGludCB0ZW0gPSBjdXI7IC8vZ2nhu68gbOG6oWkgxJHhu4MgdMOtIG7hu69hIGfDoW4gbOG6oWkKICAgICAgIGlmIChhW2ldID4gY3VyICYmIHRzICsgYVtpXSA8PSB3KSAvLyBuaMOhbmggY+G6rW46IDIgxJFp4buBdSBraeG7h24gbMOgIGTDo3kgY29uIHBo4bqjaSBsw6AgZMOjeSB0xINuZyB2w6AgdOG7lW5nIHRy4buNbmcgc+G7kSA8PSB3CiAgICAgICB7CiAgICAgICAgICAgIHBbaV0gPSBpOwogICAgICAgICAgICBsZW4rKzsgLy8gxJHhu5kgZMOgaSBkw6N5IMSRYW5nIHjDqXQKICAgICAgICAgICAgY3VyID0gYVtpXTsKICAgICAgICAgICAgdHMgKz0gYVtpXTsKICAgICAgICAgICAgc29sKGkgKyAxKTsgLy8gY2jhuqF5IHhvbmcgcGjhuqNpIMSRxrBhIGzhuqFpIG5oxrAgY8WpCiAgICAgICAgICAgIGxlbi0tOwogICAgICAgICAgICBjdXIgPSB0ZW07CiAgICAgICAgICAgIHRzIC09IGFbaV07CiAgICAgICB9CiAgICB9Cn0KCnNpZ25lZCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7ICBjb3V0LnRpZSgwKTsKICAgIC8vZnJlb3BlbihOQU1FIi5JTlAiICwgInIiICwgc3RkaW4pOwogICAgLy9mcmVvcGVuKE5BTUUiLk9VVCIgLCAidyIgLCBzdGRvdXQpOwogCiAgICBjaW4gPj4gbiA+PiB3OwogICAgZm9yIChpbnQgaSA9IDEgOyBpIDw9IG4gOyBpKyspCiAgICAgICAgY2luID4+IGFbaV07CiAgICBzb2woMSk7CiAgICBjb3V0IDw8IGFuczsKfQovLyBoYXJvbm5lZV8g