#include <bits/stdc++.h>
void sor(int A[], int N) {
  int j, i, v;
  for (i = 1; i < N - 1; i++) {
    v = A[i];
    j = i - 1;
    while (j >= 0 && A[j] > v) {
      A[j + 1] = A[j];
      j--;
    }
    A[j + 1] = A[j];
  }
}
int main() {
  int N;
  int x;
  scanf("%d %d", &N, &x);
  int a[N];
  for (int i = 0; i < N; i++) {
    scanf("%d", &a[i]);
  }
  sor(a, N);
  int z = 0;
  int i = 0;
  while (z <= x) {
    z = a[i] + z;
    i = i + 1;
  }
  printf("%d", i);
  return 0;
}
