#include <bits/stdc++.h>
using namespace std;
constexpr auto INF = INT_MAX >> 1;
constexpr auto LINF = 5000000000000000;
constexpr auto MOD = 1000000007;
int dp[3030][3030];
int main() {
  int n, a;
  cin >> n >> a;
  vector<int> x, y;
  for (int i = 0; i < (n / 2); i++) {
    int xx;
    cin >> xx;
    x.push_back(xx - a);
  }
  for (int i = 0; i < (n - n / 2); i++) {
    int yy;
    cin >> yy;
    y.push_back(yy - a);
  }
  int s = x.size();
  int t = y.size();
  vector<int> sums, sumt;
  for (int i = 0; i < (1 << s); i++) {
    int sum = 0;
    for (int j = 0; j < (s); j++)
      if ((i >> j) & 1) sum += x[j];
    sums.push_back(sum);
  }
  for (int i = 0; i < (1 << t); i++) {
    int sum = 0;
    for (int j = 0; j < (t); j++)
      if ((i >> j) & 1) sum += y[j];
    sumt.push_back(sum);
  }
  sort((sums).begin(), (sums).end());
  sort((sumt).begin(), (sumt).end());
  long long ans = 0;
  for (int i = 0; i < (sums.size()); i++)
    ans += upper_bound((sumt).begin(), (sumt).end(), -sums[i]) -
           lower_bound((sumt).begin(), (sumt).end(), -sums[i]);
  cout << ans - 1 << endl;
}
