#include<iostream>
#include<cstring>
using namespace std;
int a[102][72],n,m,s,name,fxg,wx,wy;
bool b[102][72];
bool OK()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(b[i][j])
return true;
return false;
}
void big()
{
fxg=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(fxg<a[i][j]&&b[i][j])
{
fxg=a[i][j];
wx=i;
wy=j;
}
return;
}
void find(int x,int y)
{
b[x][y]=false;
if(b[x+1][y]&&a[x][y]>=a[x+1][y])
find(x+1,y);
if(b[x-1][y]&&a[x][y]>=a[x-1][y])
find(x-1,y);
if(b[x][y+1]&&a[x][y]>=a[x][y+1])
find(x,y+1);
if(b[x][y-1]&&a[x][y]>=a[x][y-1])
find(x,y-1);
if(b[x+1][y+1]&&a[x][y]>=a[x+1][y+1])
find(x+1,y+1);
if(b[x-1][y+1]&&a[x][y]>=a[x-1][y+1])
find(x-1,y+1);
if(b[x+1][y-1]&&a[x][y]>=a[x+1][y-1])
find(x+1,y-1);
if(b[x-1][y-1]&&a[x][y]>=a[x-1][y-1])
find(x-1,y-1);
return;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
for(int i=0;i<=n+1;i++)
for(int j=0;j<=m+1;j++)
{
if(i==0||i==n+1||j==0||j==m+1||a[i][j]==0)
b[i][j]=false;
else
b[i][j]=true;
}
while(OK())
{
big();
find(wx,wy);
s++;
}
cout<<s;
return 0;
}