using namespace std;
int a[10001];//记录第i道菜的价钱
int f[10001];//标记
int ans=0;//记录方案数
int N,M;
void dfs(int i)
{
if(M==0)
{
ans++;
return ;
}
if(i>N)
return ;
if(f[i]==0&&M>=a[i])//点第i道菜
{
M-=a[i];
f[i]=1;
dfs(i+1);
M+=a[i];
f[i]=0;
}
dfs(i+1);//不点第i道菜
}
int main()
{
cin>>N>>M;
for(int i=1;i<=M;i++)
f[i]=0;
for(int i=1;i<=N;i++)
cin>>a[i];
dfs(1);
cout<<ans;
}```