#include <bits/stdc++.h>
using namespace std;
int dx[4] = {1, 0, -1, 0};
int dy[4] = {0, 1, 0, -1};
int ddx[8] = {-1, -1, 0, 1, 1, 1, 0, -1};
int ddy[8] = {0, 1, 1, 1, 0, -1, -1, -1};
bool debug = false;
int N, A;
int dp[55][55][2505];
int main() {
  cin >> N >> A;
  vector<int> x(N);
  for (int i = 0; i < int(N); i++) cin >> x[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 < 2505; k++) {
        if (dp[i][j][k]) {
          dp[i + 1][j][k] += dp[i][j][k];
          dp[i + 1][j + 1][k + x[i]] += dp[i][j][k];
        }
      }
    }
  }
  long long ans = 0;
  for (int i = 1; i < N + 1; i++) {
    ans += dp[N][i][i * A];
  }
  cout << ans << endl;
  return 0;
}
