#include <bits/stdc++.h>
using namespace std;
int n, m, snow[105][105], out;
int slid(int x, int y, int l) {
int ans = l;
if (snow[x - 1][y] < snow[x][y] and x > 1) {
ans = max(ans, slid(x - 1, y, l + 1));
}
if (snow[x + 1][y] < snow[x][y] and x < n) {
ans = max(ans, slid(x + 1, y, l + 1));
}
if (snow[x][y - 1] < snow[x][y] and y > 1) {
ans = max(ans, slid(x, y - 1, l + 1));
}
if (snow[x][y + 1] < snow[x][y] and y < m) {
ans = max(ans, slid(x, y + 1, l + 1));
}
return ans;
}
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i ++) {
for (int j = 1; j <= m; j ++) {
cin >> snow[i][j];
}
}
for (int i = 1; i <= n; i ++) {
for (int j = 1; j <= m; j ++) {
out = max(out, slid(i, j, 1));
}
}
cout << out;
return 0;
}