#include<iostream>
using namespace std;
int a[1001],n,m,cnt=0;
bool b[1001]={},cd=0;
void dfs(int money,int ab){
if(cd) return;
if(money==0){
if(cnt<2147483647){
cnt++;
return;
}
else{
cd=1;
}
}
for(int i=ab;i<=n;i++){
if(money>=a[i]&&!b[i]){
b[i]=1;
dfs(money-a[i],i);
b[i]=0;
}
}
return;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
dfs(m,1);
cout<<cnt;
return 0;
}