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