#include <bits/stdc++.h>
void swap(int *a, int *b);
int main(void) {
  int N;
  int x;
  int a_i[100];
  int i, j;
  int sum = 0;
  scanf("%d %d", &N, &x);
  for (i = 0; i < N; i++) {
    scanf("%d ", &a_i[i]);
  }
  for (i = 0; i < N - 1; i++) {
    for (j = i + 1; j < N; j++) {
      if (a_i[i] > a_i[j]) {
        swap(&a_i[i], &a_i[j]);
      }
    }
  }
  for (i = 0; i < N; i++) {
    sum += a_i[i];
    if (sum > x) {
      break;
    }
  }
  printf("%d", i);
  return 0;
}
void swap(int *a, int *b) {
  int tmp_adr;
  tmp_adr = *a;
  *a = *b;
  *b = tmp_adr;
}
