#include <bits/stdc++.h>
typedef struct top {
  int renk;
  int durum;
} top;
typedef struct seri {
  int bas;
  int sayi;
} seri;
void verialtop(top *a, int i) {
  scanf("%d", &a[i].renk);
  a[i].durum = 1;
}
void topuyaz(top *a, int n) {
  int i;
  for (i = 0; i < n; i++)
    printf("%d'inci top: %d, yanma durumu: %d\n", i, a[i].renk, a[i].durum);
}
int ikilibul(top *a, int n, int bas) {
  int i, count = 1, tmprenk = a[bas].renk;
  for (i = bas + 1; i < n; i++) {
    if (a[i].durum == 1) {
      if (a[i].renk == tmprenk)
        count++;
      else {
        tmprenk = a[i].renk;
        count = 1;
      }
      if (count == 2) return i - 1;
    }
  }
  return -1;
}
seri seribul(top *a, int yer, int n) {
  int ilkyer;
  seri donus;
  donus.bas = -1;
  donus.sayi = -1;
  if (yer == -2)
    return donus;
  else if (yer == -1)
    yer++;
  int count = 0;
  int ilkrenk = a[yer].renk;
  if ((ilkrenk != a[yer + 1].renk) && (a[yer + 1].durum == 1)) {
    yer++;
    ilkrenk = a[yer].renk;
  }
  ilkyer = yer;
  while (1) {
    if (a[yer].durum == 0) {
      yer++;
      continue;
    }
    if (a[yer].renk != ilkrenk) break;
    count++;
    yer++;
  }
  if (count < 3)
    return donus;
  else {
    donus.bas = ilkyer;
    donus.sayi = count;
  }
  return donus;
}
int toplaripatlat(top *a, int yer, int n) {
  int i;
  int sonuc = 2;
  seri seriyeri;
  a[yer].durum = 0;
  a[yer + 1].durum = 0;
  seriyeri = seribul(a, yer - 2, n);
  while (seriyeri.bas != -1) {
    int tmpyer = seriyeri.bas;
    for (i = 0; i < seriyeri.sayi; i++, tmpyer++) {
      if (a[tmpyer].durum == 0)
        i--;
      else {
        a[tmpyer].durum = 0;
        sonuc++;
      }
    }
    seriyeri = seribul(a, seriyeri.bas - 2, n);
  }
  return sonuc;
}
int main() {
  int n, k, x, i;
  scanf("%d%d%d", &n, &k, &x);
  struct top a[n];
  int bas = 0;
  int ikiliyeri;
  int patla;
  int enbuyukpatla = 0;
  for (i = 0; i < n; i++) verialtop(a, i);
  ikiliyeri = ikilibul(a, n, bas);
  while (ikiliyeri != -1) {
    if (ikiliyeri == -1) {
      printf("0");
      return 0;
    }
    if (a[ikiliyeri].renk == x) {
      patla = toplaripatlat(a, ikiliyeri, n);
      if (patla > enbuyukpatla) enbuyukpatla = patla;
      for (i = 0; i < n; i++) a[i].durum = 1;
    } else
      bas = ikiliyeri + 2;
    ikiliyeri = ikilibul(a, n, ikiliyeri + 2);
  }
  printf("%d", enbuyukpatla);
}
