/*
#include<stdio.h>
int map[100][100]={},n,m,num=0;
int cnt[500]={};
void dfs(int x,int y)
{
if(x<0||y<0||x>=n||y>=m||map[x][y]!=0) return ;
map[x][y]=3;
cnt[num]++;
dfs(x-1,y);
dfs(x+1,y);
dfs(x,y-1);
dfs(x,y+1);
}
int main()
{
int i,j,o,x1,x2,y1,y2,k,temp;
scanf("%d %d %d",&n,&m,&o);
for(k=1; k<=o; k++)
{
scanf("%d %d %d %d",&x1,&y1,&x2,&y2);
for(i=x1; i<x2; i++)
{
for(j=y1; j<y2; j++)
{
map[j][i]=7;
}
}
}
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
if(map[i][j]==0)
{
num++;
dfs(i,j);
}
}
}
printf("%d\n",num);
for(i=1; i<num; i++)
{
for(j=1; j<=num-i; j++)
{
if(cnt[j]>cnt[j+1])
{
temp=cnt[j];
cnt[j]=cnt[j+1];
cnt[j+1]=temp;
}
}
}
for(i=1; i<=num; i++)
{
printf("%d ",cnt[i]);
}
}
/*
#include<stdio.h>
char map[15][15]={};
void dfs(int x,int y)
{
if(x<0||y<0||x>9||y>9||map[x][y]=='*') return ;
map[x][y]='*';
dfs(x,y-1);
dfs(x,y+1);
dfs(x-1,y);
dfs(x+1,y);
}
int main()
{
int i,j,x,y;
for(i=0; i<=9; i++)
{
scanf("%s", map[i]);
}
scanf("\n%d %d",&x,&y);
dfs(y,x);
for(i=0; i<=9; i++)
{
for(j=0; j<=9; j++)
{
printf("%c",map[i][j]);
}
printf("\n");
}
}
/*/
#include<stdio.h>
int map[101][101]= {},n,k,c[101][101]={};
void dfs(int x,int y)
{
if(x<=0||y<=0||x>n||y>n||map[x][y]<=k||c[x][y]==1) return ;
c[x][y]=1;
dfs(x+1,y);
dfs(x-1,y);
dfs(x,y+1);
dfs(x,y-1);
}
int main()
{
int i,j,a[101]={},temp;
scanf("%d",&n);
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
{
scanf("%d",&map[i][j]);
}
}
for(k=1; k<=100; k++)
{
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
{
if(map[i][j]>k&&c[i][j]==0)
{
a[k]++;
dfs(i,j);
}
}
}
}
for(i=1; i<100; i++)
{
for(j=1; j<=100-i; j++)
{
if(a[j]<a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf("%d",a[1]);
}