#include <iostream>
#include <sstream>
#include <string>
#include <vector>
#include <list>
#include <stack>
#include <queue>
#include <deque>
#include <set>
#include <map>
#include <algorithm>
#include <functional>
#include <limits>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <climits>
#include <complex>

using namespace std;

#define INF (INT_MAX/3)
#define PI (2*acos(0.0))
#define EPS (1e-8)

typedef long long ll;
typedef unsigned long long ull;

int main(){
    ios_base::sync_with_stdio(0);
    int N, M;
    cin >> N >> M;
    vector<int> C(N);

    for(int i = 0; i < N; i++) cin >> C[i];
    sort(C.begin(), C.end());

    int m = 0, cnt = 0;
    for(int i = 0; i < C.size(); i++){
        if(m + C[i] <= M){
            m += C[i];
            cnt++;
        }else{
            m = M;
        }
        if(m >= M) break;
    }
    cout << cnt << endl;
}