#include <stdio.h>
int map[100][100] = {0},n,copy[100][100],cnt=0;
void dfs(int x, int y,int h) {
if (x < 0 || y < 0 || x >= n || y >= n || map[x][y] <=h)
return;
map[x][y] = -1;
dfs(x + 1, y,h);
dfs(x - 1, y,h);
dfs(x, y + 1,h);
dfs(x, y - 1,h);
}
void copyMap() {
int i, j;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
map[i][j]=copy[i][j];
}
}
}
int main() {
int i,j,k,max=1;
scanf("%d", &n);
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &map[i][j]);
copy[i][j]=map[i][j];
}
}
for(k=1; k<=100; k++) {
cnt=0;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
if(map[i][j]>k){
cnt++;
dfs(i,j,k);
}
}
}
if(cnt>max)
max=cnt;
copyMap();
}
printf("%d",max);
return 0;
}



