#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_ 