#include <stdio.h>
int n,s,ans=0;
int arr[20];
int arra[20];
void backtrack(int m,int l,int a)
{
int sum=0;
// arra[a]=-100001;
if(s==m){
ans++;
}
if(l==n){
return ;
}
for(int i=a+1;i<=n;i++){
if(arra[i]==-100001){
continue;
}
// printf("%d ",m);
backtrack(m+arra[i],l+1,i);
for(int j=1;j<=n;j++){
if(j==a){
continue;
}
arra[j]=arr[j];
}
}
return ;
}
int main()
{
int i,j;
scanf("%d %d",&n,&s);
for(i=1;i<=n;i++){
scanf("%d",&arr[i]);
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
arra[j]=arr[j];
}
backtrack(arra[i],1,i);
//printf("%d ",ans);
// printf("\n");
}
printf("%d",ans);
return 0;
}