// poj.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
using namespace std;
int a[200][200];
int l[4][2]={{1,0},{0,-1},{-1,0},{0,1}};
int r,c;
int DP(int i, int j)
{
bool visited[200][200];
memset(visited,sizeof(bool),false);
int len;
int max=-1;
for(int k=0;k<4;k++)
{
if((i+l[k][0])>=0&&(i+l[k][0])<r&&(j+l[k][1])>=0&&(j+l[k][1])<c&&a[i+l[k][0]][j+l[k][1]]<a[i][j]&&(!visited[i+l[k][0]][j+l[k][1]]))
{
len=DP(i+l[k][0],j+l[k][1])+1;
if(len>max)
max=len;
}
}
return max;
}
int main()
{
cin>>r>>c;
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++)
{
cin>>a[i][j];
}
}
int max_dp=-1;
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++)
{
if(DP(i,j)>max_dp)
max_dp=DP(i,j);
}
}
cout<<max_dp<<endl;
return 0;
}