#include <bits/stdc++.h>
int compare_int(const void *a, const void *b) { return *(int *)a - *(int *)b; }
int main() {
  int n, x, all = 0;
  scanf("%d %d", &n, &x);
  int a[n];
  for (int i = 0; i < n; i++) {
    scanf("%d", a + i);
    all += a[i];
  }
  if (all < x) {
    printf("%d\n", n - 1);
    return 0;
  }
  qsort(a, n, sizeof(int), compare_int);
  int cnt = 0;
  while (x > 0 && cnt < n) {
    if (x < a[cnt]) {
      break;
    }
    x -= a[cnt];
    cnt++;
  }
  printf("%d\n", cnt);
  return 0;
}
