#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 50, MAX_X = 50;
long long dp[MAX_N + 1][MAX_N + 1][MAX_X * MAX_N];
int x[MAX_N + 1];
int main() {
  int n, a;
  cin >> n >> a;
  for (int i = (0); i < (int)(n); i++) cin >> x[i];
  memset(dp, 0, sizeof dp);
  dp[0][1][x[0]] = 1;
  dp[0][0][0] = 1;
  for (int i = (0); i < (int)(n - 1); i++) {
    for (int j = (0); j < (int)(n + 1); j++) {
      for (int k = (0); k < (int)(MAX_X * MAX_N + 1); k++) {
        if (!dp[i][j][k]) continue;
        dp[i + 1][j + 1][k + x[i + 1]] += dp[i][j][k];
        dp[i + 1][j][k] += dp[i][j][k];
      }
    }
  }
  long long ans = 0;
  for (int j = (1); j < (int)(n + 1); j++) {
    ans += dp[n - 1][j][a * j];
  }
  cout << (ans) << endl;
  return 0;
}
