// N人目に注意!これだけ分けて考える。
#include <bits/stdc++.h>
using namespace std;
int main() {
  int N, x;
  cin >> N >> x;
  //ソートして小さい方から飴を与えていく
  vector<int> a(N);
  int ans = 0;
  for (int i = 0; i < N; i++) cin >> a.at(i);
  sort(a.begin(), a.end());
  for (int i = 0; i < N - 1; i++){
    if (a[i] <= x) {
      ++ans;
      x = x - a[i];
    }
  }
//答えが N になる場合というのは、x がちょうどぴったり a[i]の総和になっている場合のみにかぎられる。
  if (a[N-1] == x) ++ans;
  
    
   cout << ans << endl;
}
//追記:18行目でa[N]とa[N-1]を間違えた。頻発しているので添字が正しいかに気をつける
/* 後半の分岐は以下のように書くこともできる。
for (int i = 0; i < N; ++i) {
        if (x >= a[i]) ++res, x -= a[i];
        else break;
    }
    if (res == N && x) --res;