#include <bits/stdc++.h>
using namespace std;
struct edge {
  int u, v;
  long long w;
};
long long MOD = 1000000007;
long long _MOD = 1000000009;
double EPS = 1e-10;
int main() {
  int n, x;
  cin >> n >> x;
  vector<int> a(n);
  for (int i = (0); i < (n); i++) cin >> a[i];
  sort((a).begin(), (a).end());
  int ans = 0;
  long long count = 0;
  for (int i = (0); i < (n); i++) {
    count += a[i];
    if (count > x) break;
    ans++;
  }
  cout << ans << endl;
}
