#include<bits/stdc++.h>
using namespace std;
int n,m,a[207][207],ans[207][207];
int dx[10]={0,0,0,1,-1};
int dy[10]={0,1,-1,0,0};
int dfs(int x,int y){
if(ans[x][y]!=-1){
return ans[x][y];
}
for(int i=1;i<=4;i++){
if(a[x][y]>a[x+dx[i]][y+dy[i]]){
ans[x][y]=max(ans[x][y],dfs(x+dx[i],y+dy[i])+1);
}
}
return ans[x][y];
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
ans[i][j]=-1;
}
}
int maxans=-1;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
ans[i][j]=dfs(i,j);
}
}a
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
maxans=max(maxans,ans[i][j]);
}
}
if(maxans!=-1)cout<<maxans;
else cout<<1;
}