#include <bits/stdc++.h>
using namespace std;
long A[101];
long n, x;
long dp[101][1000][1000];
int dfs(long p, long x, long cnt) {
  int res;
  if (dp[p][x][cnt] > 0) return dp[p][x][cnt];
  if (x == 0) return cnt;
  if (x < 0) return cnt - 1;
  if (p >= n) return cnt - 1;
  res = max(dfs(p + 1, x - A[p], cnt + 1), dfs(p + 1, x, cnt));
  return dp[p][x][cnt] = res;
}
int main() {
  cin >> n >> x;
  for (int i = 0; i < n; i++) {
    scanf("%ld", &A[i]);
  }
  sort(A, A + n);
  int ans = dfs(0, x, 0);
  cout << ans << endl;
}
