#include <bits/stdc++.h>
using namespace std;
long long fabs(long long x) { return x >= 0LL ? x : -1LL * x; }
long long fmax(long long x, long long y) { return x >= y ? x : y; }
long long fmin(long long x, long long y) { return x >= y ? y : x; }
bool is_even(long long x) { return x % 2 == 0; }
bool is_odd(long long x) { return !is_even(x); }
struct seq {
  long long x1, y1, x2, y2;
};
long long gcd(long long x, long long y) { return y == 0 ? x : gcd(y, x % y); }
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  long long n, x;
  cin >> n >> x;
  vector<long long> d(n);
  for (int i = 0; i < int(n); i++) cin >> d[i];
  sort(d.begin(), d.end());
  int count = 0;
  int i = 0;
  while (x > 0 && i < n) {
    if (x - d[i] >= 0) {
      x -= d[i];
      count++;
      i++;
    } else {
      break;
    }
  }
  if (x > 0) {
    count--;
  }
  cout << count << endl;
  return 0;
}
