#include <bits/stdc++.h>
int main() {
  int64_t N, x;
  std::cin >> N >> x;
  int64_t a[N], Ans = 0;
  int64_t S = 0;
  for (int i = 0; i < N; i++) {
    std::cin >> a[i];
    S += a[i];
  }
  int64_t tr;
  for (int i = 0; i < N - 1; i++) {
    for (int j = i; j < N - 1; j++) {
      if (a[j] < a[j + 1]) {
        tr = a[j];
        a[j] = a[j + 1];
        a[j + 1] = tr;
      }
    }
  }
  if (S < x) {
    Ans = N - 1;
  } else if (S == x) {
    Ans = N;
  } else {
    for (int i = 0; i < N; i++) {
      if (S <= x + a[i]) {
        Ans = N - i - 1;
        break;
      } else {
        x += a[i];
      }
    }
  }
  std::cout << Ans << std::endl;
}
