#include <bits/stdc++.h>
using namespace std;
int main() {
  priority_queue<long long int> que;
  long long int N;
  cin >> N;
  long long int x;
  cin >> x;
  for (int i = 0; i < N; i++) {
    long long int a;
    cin >> a;
    que.push(-a);
  }
  int ans = 0;
  while (x > 0 && !que.empty()) {
    long long int b = que.top();
    que.pop();
    if (-b > x) break;
    x += b;
    ans++;
  }
  if (x != 0 && ans != 0) ans--;
  cout << ans << endl;
  return 0;
}
