rt,0分求调
#include <bits/stdc++.h>
using namespace std;
int n,m;
int ar[109][109]={0},f[109][109]={0};
int dfs(int i,int j){
if(i==-1||j==0-1||i==n||j==m) return 0;
if(f[i][j]==-1){
if(ar[i-1][j]<ar[i][j]){
f[i][j]=max(f[i][j],dfs(i-1,j)+1);
}
if(ar[i][j-1]<ar[i][j]){
f[i][j]=max(f[i][j],dfs(i,j-1)+1);
}
if(ar[i+1][j]<ar[i][j]){
f[i][j]=max(f[i][j],dfs(i+1,j)+1);
}
if(ar[i][j+1]<ar[i][j]){
f[i][j]=max(f[i][j],dfs(i,j+1)+1);
}
}
return f[i][j];
}
int main(){
cin >> n >> m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin >> ar[i][j];
f[i][j]=-1;
}
}
int maxn;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
f[i][j]=dfs(i,j);
maxn=max(maxn,f[i][j]);
}
}
cout << maxn;
return 0;
}