#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000000007;
long long N, x;
vector<long long> A;
long long ans, c;
void dfs(long long n, long long sum, long long c);
int main() {
  cin >> N >> x;
  A.resize(N);
  for (int i = 0; i < (int)(N); i++) {
    cin >> A.at(i);
  }
  ans = 0;
  dfs(0, 0, 0);
  cout << ans << endl;
}
void dfs(long long n, long long sum, long long c) {
  if (sum > x) {
    return;
  }
  if (n == N) {
    if (sum != x) {
      c--;
    }
    ans = max(ans, c);
    return;
  }
  dfs(n + 1, sum + A.at(n), c + 1);
  dfs(n + 1, sum, c);
  return;
}
