#include <bits/stdc++.h>
void swap(int data[], int s, int t) {
  int tmp = data[s];
  data[s] = data[t];
  data[t] = tmp;
}
void Bsort(int data[], int size) {
  int i, j;
  for (i = 0; i < size - 1; i++) {
    for (j = 0; j < size - 1; j++) {
      if (data[j] > data[j + 1]) {
        swap(data, j, j + 1);
      }
    }
  }
}
int main(void) {
  int N, x;
  scanf("%d %d", &N, &x);
  int a[N];
  for (int i = 0; i < N; i++) {
    scanf("%d", &a[i]);
  }
  Bsort(a, N);
  int count;
  for (int i = 0; i < N; i++) {
    x = x - a[i];
    if (x >= 0) {
      count++;
    } else
      break;
  }
  printf("%d\n", count);
}
