#include <bits/stdc++.h>
using namespace std;
long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }
long long qp(long long a, long long b) {
  long long ans = 1;
  do {
    if (b & 1) ans = 1ll * ans * a;
    a = 1ll * a * a;
  } while (b >>= 1);
  return ans;
}
long long qp(long long a, long long b, long long mo) {
  long long ans = 1;
  do {
    if (b & 1) ans = 1ll * ans * a % mo;
    a = 1ll * a * a % mo;
  } while (b >>= 1);
  return ans;
}
const int MAX_N = 52;
int a[MAX_N];
long long dp[MAX_N][MAX_N][MAX_N * MAX_N];
int main(void) {
  int n, A;
  cin >> n >> A;
  for (int i = 0; i < n; ++i) {
    cin >> a[i];
  }
  dp[0][0][0] = 1;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j <= n; j++) {
      for (int k = 0; k < 2500; k++) {
        dp[i + 1][j][k] += dp[i][j][k];
        if (k + a[i] < 2500) dp[i + 1][j + 1][k + a[i]] += dp[i][j][k];
      }
    }
  }
  long long ans = 0;
  for (int i = 1; i <= n; i++) {
    ans += dp[n][i][i * A];
  }
  cout << ans << endl;
}
