#include <bits/stdc++.h>
int swap(const void *p, const void *q) { return *(int *)p - *(int *)q; }
int main(void) {
  int i, child_n, sweet_n;
  int count = 0;
  int bunpai[200000];
  scanf("%d%d", &child_n, &sweet_n);
  for (i = 0; i < child_n; i++) scanf("%d", &bunpai[i]);
  qsort(bunpai, child_n, sizeof(int), swap);
  for (i = 0; i < child_n; i++) {
    sweet_n -= bunpai[i];
    if (sweet_n >= 0) count++;
  }
  printf("%d", count);
  return 0;
}
