#include<iostream>
#include<cmath>
using namespace std;
int n, m, a[105][105], b[105][105],f[105][105], i, j, ans;
int dfs(int x, int y)
{
int mmax = -1;
if (f[x][y])
return b[x][y];
else {
if (a[x + 1][y] != 0 && a[x + 1][y] < a[x][y] && x + 1 != n + 1)
mmax=max( dfs(x + 1, y) + 1, mmax);
if (a[x - 1][y] != 0 && a[x - 1][y] < a[x][y] && x - 1 != n + 1)
mmax = max(dfs(x - 1, y) + 1, mmax);
if (a[x][y + 1] != 0 && a[x][y + 1] < a[x][y] && y + 1 != m + 1)
mmax = max(dfs(x, y + 1) + 1, mmax);
if (a[x][y - 1] != 0 && a[x][y - 1] < a[x][y] && y - 1 != m + 1)
mmax = max(dfs(x, y - 1) + 1, mmax);
if (mmax == -1)
mmax = 1;
b[x][y] = mmax;
f[x][y] = 1;
return b[x][y];
}
}
int main() {
cin >> n >> m;
for (i = 1; i <= n; i++)
{
for (j = 1; j <= m; j++)
{
cin >> a[i][j];
}
}
for (i = 1; i <= n; i++)
{
for (j = 1; j <= m; j++)
{
ans = max(dfs(i,j), ans);
}
}
cout << ans;
return 0;
}
第五个点和第七个点wa了。。。。