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