#include <bits/stdc++.h>
using namespace std;
long long int dp[50][51][2501];
long long int DP(int i, int j, int k);
long long int x[50];
int n, a;
int main() {
  cin >> n >> a;
  int i;
  memset(dp, -1, sizeof(dp));
  for (i = 0; i < n; i++) {
    cin >> x[i];
  }
  long long int s = 0;
  for (i = 1; i <= n; i++) {
    s = s + DP(0, i, i * a);
  }
  cout << s << endl;
  return 0;
}
long long int DP(int i, int j, int k) {
  int b, sum;
  if (k < 0) {
    return 0;
  }
  if (dp[i][j][k] >= 0) {
    return dp[i][j][k];
  }
  if (j == 0) {
    if (k == 0) {
      dp[i][j][k] = 1;
      return 1;
    } else {
      dp[i][j][k] = 0;
      return 0;
    }
  }
  if (n - i < j) {
    dp[i][j][k] = 0;
    return 0;
  } else if (n - i == j) {
    sum = 0;
    for (b = i; b < n; b++) {
      sum = sum + x[b];
    }
    if (sum == k) {
      dp[i][j][k] = 1;
      return 1;
    } else {
      dp[i][j][k] = 0;
      return 0;
    }
  } else {
    sum = DP(i + 1, j - 1, k - x[i]);
    sum = sum + DP(i + 1, j, k);
    dp[i][j][k] = sum;
    return sum;
  }
}
