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