#include<stdio.h>
#include<stdlib.h>
int R,C,max,a[100][100]={10001},b[100][100];
int DFS(int sx,int sy)
{
int i,x,y,tmp,dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
if(b[sx][sy])
return b[sx][sy];
b[sx][sy]=1;
for(i=0;i<4;i++)
{
x=sx+dir[i][0];
y=sy+dir[i][1];
if(x>=0&&x<R&&y>=0&&y<C&&a[x][y]<a[sx][sy])
{
tmp=DFS(x,y)+1;
if(tmp>b[sx][sy])
b[sx][sy]=tmp;
}
}
return b[sx][sy];
}
int main()
{
int i,j;
scanf("%d %d",&R,&C);
for(i=0;i<R;i++)
for(j=0;j<C;j++)
scanf("%d",&a[i][j]);
memset(b,0,sizeof(b));
for(i=0;i<R;i++)
{
for(j=0;j<C;j++)
{
b[i][j]=DFS(i,j);
if(b[i][j]>max)
max=b[i][j];
}
}
printf("%d/n",max);
return 0;
}