#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
inline int read()
{
int x = 0, f = 1;
char ch = getchar();
while (ch < '0' || ch>'9')
{
if (ch == '-')
f = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9')
x = x * 10 + ch - '0', ch = getchar();
return x * f;
}
vector<int> h;
int n, i;
long b;
bool compa(int a, int b)
{
return a > b;
}
int main()
{
scanf_s("%d%ld", &n, &b);
for (i = 1; i <= n; ++i)
h.push_back(read());
sort(h.begin(), h.end(), compa);
for (i = 0; b > 0; b -= h[++i]);
printf("%d", i);
return 0;
}