type arr=array[1..12] of longint;
var i,j,n,m,count:longint;
a:arr;
procedure find(num:arr;len:integer);
var i,j:integer;
temp,temp1:longint;
b:arr;
begin
if (num[1]=m)and(len=1) then begin inc(count);exit; end;
if len=1 then exit;
for i:=1 to len-1 do
begin
b:=num;
num[i]:=num[i]-num[i+1];
for j:=i+1 to len do num[j]:=num[j+1];
find(num,len-1);
num:=b;
end;
end;
begin
assign(output,'line.out');rewrite(output);
assign(input,'line.in');reset(input);
readln(n);
readln(m);
for i:=1 to n do readln(a[i]);
find(a,n);
writeln(count);
close(output);
close(input);
end.