//Normal #define _GLIBCXX_DEBUG #define ll long long #include using namespace std; using Graph = vector>; void print(auto a){ cout << a; } void prints(auto a){ cout << a << " "; } void prints(){ cout << " "; } void printl(auto a){ cout << a << endl; } void printl(){ cout << endl; } void fix(int n){ cout << fixed << setprecision(n); } int main(){ int N, M; cin >> N >> M; vector C(N); for(int i = 0; i < N; i++) cin >> C[i]; sort(C.begin(), C.end()); for(int i = 0; i < N; i++){ if(M < C[i]){ printl(i); return 0; }else if(M == C[i]){ printl(i+1); return 0; }else{ M -= C[i]; } } }