#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int r,c,h[101][101],m[101][101],l,dx[4]={-1,0,0,1},dy[4]={0,-1,1,0};
int cnt(int x,int y){
if(m[x][y]) return m[x][y];
if(x>0&&x<=r&&y>0&&y<=c){
for(int i=0;i<4;i++)
if(h[x+dx[i]][y+dy[i]]<h[x][y])
m[x][y]=max(m[x][y],cnt(x+dx[i],y+dy[i])+1);
}
else return 0;
return m[x][y];
}
int main()
{
cin>>r>>c;
memset(h,-1,sizeof(h));
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++)
cin>>h[i][j];
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++)
l=max(l,cnt(i,j));
cout<<l;
return 0;
}