#include <bits/stdc++.h>
using namespace std;
template <class T>
T By(T x, T y, T P) {
  T F1 = 0;
  while (y) {
    if (y & 1) {
      F1 += x;
      if (F1 < 0 || F1 >= P) F1 -= P;
    }
    x <<= 1;
    if (x < 0 || x >= P) x -= P;
    y >>= 1;
  }
  return F1;
}
template <class T>
T Mul(T x, T y, T P) {
  T F1 = 1;
  x %= P;
  while (y) {
    if (y & 1) {
      F1 = By(F1, x, P);
    }
    x = By(x, x, P);
    y >>= 1;
  }
  return F1;
}
template <class T>
T Gcd(T x, T y) {
  if (y == 0) return x;
  T z;
  while (z = x % y) {
    x = y, y = z;
  }
  return y;
}
struct EDGE {
  int T;
  EDGE *Nxt;
};
template <class T>
void UpdataMin(T &x, T y) {
  if (y < x) {
    x = y;
  }
}
template <class T>
void UpdataMax(T &x, T y) {
  if (x < y) {
    x = y;
  }
}
int F[100001];
int L, R, N, M, QN;
int main() {
  cin >> N >> M;
  QN = N;
  for (int i = 1; i <= (N); ++i) {
    cin >> F[i];
  }
  sort(F + 1, F + N + 1);
  L = lower_bound(F + 1, F + N + 1, M) - F;
  R = upper_bound(F + 1, F + N + 1, M) - F - 1;
  while (L > (N + 1) / 2 || R < (N + 1) / 2) {
    ++N;
    ++R;
  }
  cout << N - QN << endl;
  cin >> N;
  return 0;
}
