#include<bits/stdc++.h> usingnamespace std; typedeflonglong ll; int a[105][105]; int dp[105][105]; int dx[4] = {-1, 1, 0, 0}; int dy[4] = {0, 0, -1, 1}; int n, m; boolcheck(int i, int j){ return i >= 0 && i < n && j >= 0 && j < m; } intdfs(int i, int j){ if (dp[i][j] != 0) return dp[i][j]; dp[i][j] = 1; for (int z = 0; z < 4; z++) { int x = i + dx[z], y = j + dy[z]; if (check(x, y) && a[x][y] < a[i][j]) { dp[i][j] = max(dp[i][j], 1 + dfs(x, y)); } } return dp[i][j]; } voidsolve(){ cin >> n >> m; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cin >> a[i][j]; } } int ans = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { ans = max(ans, dfs(i, j)); } } cout << ans << "\n"; } intmain(){ ios::sync_with_stdio(false); cin.tie(nullptr); solve(); return0; }