f[i][j]=max(f[i-1][j], f[i+1][j], f[i][j-1], f[i][j+1]) + 1;
#include <bits/stdc++.h>
using namespace std;
int f[105][105];
int a[105][105];
int ans;
int dp(int x,int y){
if(f[x][y]) return f[x][y];
int l_max=0;
if(a[x-1][y]>a[x][y]) l_max=max(l_max,dp(x-1,y));
if(a[x+1][y]>a[x][y]) l_max=max(l_max,dp(x+1,y));
if(a[x][y+1]>a[x][y]) l_max=max(l_max,dp(x,y+1));
if(a[x][y-1]>a[x][y]) l_max=max(l_max,dp(x,y-1));
f[x][y]=l_max+1;
return f[x][y];
}
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
for(int i=1;i<=n;i+&#