/*#include <stdio.h>
#include <string.h>
int kp;
int m, n, k, i, j, x, y, p=0, temp;
int a, s, d, f;
int map[200][200] = {0}, cnt[100]= {};
int dec(int x, int y)
{
map[x][y]=-1;
kp++;
if (map[x-1][y] == 0)
dec(x-1,y);
if (map[x][y-1] == 0)
dec(x,y-1);
if (map[x][y+1] == 0)
dec(x,y+1);
if (map[x+1][y] == 0)
dec(x+1,y);
}
int main()
{
scanf("%d %d %d", &m, &n, &k);
for(i=0; i<=m+1; i++)
{
for(j=0; j<=n+1; j++)
{
if ( i == 0 || i == m + 1 ||
j == 0 || j == n + 1 )
{
map[i][j] = 1;
}
}
}
for(i=0; i<k; i++)
{
scanf("%d %d %d %d", &a, &s, &d, &f);
for(x=a+1; x<d+1; x++)
{
for(y=s+1; y<f+1; y++)
{
map[y][x] = 1;
}
}
}
for(i=1; i<=m; i++)
{
for(j=1; j<=n; j++)
{
if(map[i][j]==0)
{
kp = 0;
dec(i, j);
cnt[p++]=kp;
}
}
}
for(i=0; i<p-1; i++)
{
for(j=0; j<p-1-i; j++)
{
if (cnt[j] > cnt[j+1])
{
temp = cnt[j];
cnt[j] = cnt[j+1];
cnt[j+1] = temp;
}
}
}
printf("%d\n", p);
for(i=0; i<p; i++)
{
printf("%d ", cnt[i]);
}
return 0;
}
*/
#include<stdio.h>
int a[101][101],b[101][101], cnt[100]= {};
int c=0;
void dfs(int x, int y, int k)
{
if(a[x][y] > k)
{
a[x][y]=-1;
dfs(x-1,y,k);
dfs(x,y-1,k);
dfs(x,y+1,k);
dfs(x+1,y,k);
}
}
int main()
{
int i, j, n,max=1,min=100,mmax=1;
scanf("%d", &n);
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
scanf("%d", &a[i][j]);
b[i][j]=a[i][j];
if(max<a[i][j])
{
max=a[i][j];
}
if(min>a[i][j])
{
min=a[i][j];
}
}
}
for(int k= min ; k<max; k++)
{
c=0;
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
if(a[i][j]>k)
{
dfs(i,j,k);
c++;
}
}
}
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
a[i][j]=b[i][j];
}
}
cnt[k]=c;
}
for(i = min ; i<max ; i++)
{
//printf("%d ",cnt[i]);
if(cnt[i]>mmax)
{
mmax=cnt[i];
}
}
printf("%d",mmax);
return 0;
}