#include <stdio.h>
#define COLOR_NUM 6

/* パネル配置 */
typedef struct panel{
	int h;
	int w;
	int p[8][8];
} Panel;

/* 変更履歴 */
typedef struct change_log{
	int x[8*8];
	int y[8*8];
	int n;
	int c;
} Log;

Panel p;
int c;
Log l[6];
int step;

/* パネルを表示する (デバッグ用) */
void show(){
	int i, j;
	for (i = 0; i < p.h; i++){
		for (j = 0; j < p.w; j++){
			printf("%d ", p.p[i][j]);
		}
		printf("\n");
	}
	printf("\n");
}

/* 指定した座標のパネルを指定された色 from から to に変える (再帰) */
int fillr(int x, int y, int from, int to){
	int r;
	if (x < 0 || x >= p.w || y < 0 || y >= p.h || p.p[y][x] != from) return 0;
	/* 変更を記録する */
	l[step].x[l[step].n] = x;
	l[step].y[l[step].n] = y;
	l[step].n++;

	p.p[y][x] = to;
	r = 1;

	/* 周囲の升も塗りつぶす */
	r += fillr(x    , y - 1, from, to);
	r += fillr(x    , y + 1, from, to);
	r += fillr(x - 1, y    , from, to);
	r += fillr(x + 1, y    , from, to);

	return r;
}
/* 指定した座標のパネルを指定された色で塗りつぶし、塗りつぶしたパネルの数を返す */
int fill(int x, int y, int c){
	int r;
	l[step].n = 0;
	l[step].c = p.p[y][x];
	r = fillr(x, y, p.p[y][x], c);
	step++;
	return r;
}

/* 色の変更を戻す */
void re(){
	int i;
	step--;
	for (i = 0; i < l[step].n; i++){
		p.p[l[step].y[i]][l[step].x[i]] = l[step].c;
	}
}

/* 指定した座標のパネルの大きさを返す */
int size(int x, int y){
	int r = fill(x, y, 0);
	re();
	return r;
}

/* パネルの色の変え方を探索し得られる最も大きなパネルの大きさを返す */
int search(int n){
	int max = 0, m;
	int i;

	/* 5 回目 */
	if (n == 4){
		fill(0, 0, c);
		m = size(0, 0);  /* 左上のパネルの大きさを調べる */
		re();  /* 元に戻す */
		return m;
	}

	/* 色の変え方を全通り試す */
	for (i = 1; i <= COLOR_NUM; i++){
		if (p.p[0][0] == i) continue;  /* 今の色と同じ色に変えても無意味なので試行しない */
		if (n == 3 && i == c) continue;  /* 5 回目で目標色に必ず変えるので、4 回目では目標色を試行しない */

		fill(0, 0, i);  /* 色を変える */
		m = search(n + 1);
		if (m > max) max = m;
		re();  /* 元に戻す */
	}

	return max;
}

int main(void){
	int i, j;

	while (scanf("%d%d%d", &p.h, &p.w, &c) == 3 && p.h > 0 && p.h <= 8 && p.w > 0 && p.w <= 8 && c > 0 && c <= COLOR_NUM){
		/* 入力 */
		for (i = 0; i < p.h; i++) for (j = 0; j < p.w; j++) scanf("%d", &(p.p[i][j]));
		/* 初期化 */
		step = 0;

		printf("%d\n", search(0));
	}

    return 0;
}