Jamison @ 2022-09-08 13:14:34
#include <bits/stdc++.h>
using namespace std;
int r,c,a[105][105],ans,temp,s[105][105];
int dx[10]={0,1,-1,0,0},dy[10]={0,0,0,-1,1};
int dfs(int r,int c)
{
if(s[r][c]) return s[r][c];
s[r][c]=1;
for(int i=1;i<=4;i++)
{
int x=r+dx[i],y=c+dy[i];
if(x>0 && y>0 && x<=r && y<=c && a[x][y]<a[r][c])
{
dfs(x,y);
s[r][c]=max(s[r][c],s[x][y]+1);
}
}
return s[r][c];
}
int main()
{
cin>>r>>c;
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++)
cin>>a[i][j];
for(int i=1;i<=r;i++)
{
for(int j=1;j<=c;j++)
ans=max(ans,dfs(i,j));
}
cout<<ans;
return 0;
}