#include //cin, cout #include //vector #include //sort,min,max #include //string #include //fixed #include //setprecision #include //swap #include //abs(int) #include //sqrt #include //stringstream,getline using namespace std; inline std::vector Split_String(const std::string& str, const char key) { std::vector result; std::stringstream SS(str); std::string temp; while (std::getline(SS, temp, key)) { result.push_back(temp); } return(result); } 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()); int i = 0; while (M > 0) { M -= C[i]; i++; } if (M == 0) { cout << i << endl; } else { cout << i - 1 << endl; } return 0; }