#include using namespace std; typedef long long int ll; typedef pair pint; #define rep(i,n) for(int i=0;i<(int)(n);i++) const int INF = 100000000; const int dx[4]={0,1,0,-1}, dy[4]={-1,0,1,0}; struct P{int x;int y;P(int X=0,int Y=0){x=X;y=Y;}}; int N, M; vector c; int main() { cin >> N >> M; c.resize(N); rep(i,N) scanf("%d", &c[i]); sort(c.begin(),c.end()); int sum = 0; rep(i,N) { sum += c[i]; if(sum > M) { printf("%d\n",i); return 0; } else if(sum == M) { printf("%d\n", i+1); return 0; } } printf("%d\n",N); return 0; }