N,A=list(map(int,input().split()))
x = list(map(int,input().split()))
sx = sum(x)
dp=[[0]*(N+1) for i in range(sx+1)]
dp[0][0]=1
for i in range(N):
  dp_sub=[[0]*(N+1) for j in range(sx+1)]#k枚のカードでsxを表す場合が何通りあるかを記録しておく
  for j in range(sx+1):
    for k in range(N+1):
      if dp[j][k]!=0:
        dp_sub[j+x[i]][k+1]=dp[j][k]
  for j in range(sx+1):
    for k in range(N+1):
      dp[j][k]+=dp_sub[j][k]#dp_subの結果をdpに反映

cnt=0

for i in range(min(sx//A,N)):
  cnt+=dp[A*(i+1)][i+1]
print(cnt)