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