#include<iostream>
using namespace std;
int main()
{
int n,m;
cin >> n >> m;//输入商品数n,钱数m
int price[n];//定义一个关于商品价格的数组
int temp;//声明一个临时变量用于储存数组排序时的数据
int all;//声明一个变量用于计算购买商品花费的钱数
int t=0;//声明一个变量用于计算最终可购买的商品数
int b=0;//声明一个变量用于计算购买商品数的循环
//循环输入商品价格
for(int i=0; i<n; i++)
{
cin >> price[i];
}
//通过循环将商品价格按升序排序
//外层循环控制比较轮数
for(int i=0; i<n; i++)
{
//内层循环控制每轮比较和交换
for(int j=0; j<n-i; j++)
{
//比较相邻两数据大小
if(price[j]>price[j+1])
{
//通过交换将较小的数据向前排列
temp=price[j+1];
price[j+1]=price[j];
price[j]=temp;
}
}
}
//购买商品所需钱数不断累加且小于等于拥有钱数
//五件商品由小到大逐一累加
for(all=0; all<=m&&b<n; b++)
{
all=price[b]+all;
t++;
//购买最后一件商品时超过所拥有钱数
//减去最后一件商品
if(all>m)
t--;
}
//输出最多所购买商品数
cout << t;
return 0;
}