Apocalypsis @ 2018-02-23 10:07:38
#include<bits/stdc++.h>
using namespace std;
int ans,r,c,e,h[101][101],f[101][101];
int sear(int x,int y){
if(f[x][y]) return f[x][y];
f[x][y]=1;
if(x>1&&h[x-1][y]<h[x][y]) f[x][y]=max(f[x][y],sear(x-1,y)+1);
if(y>1&&h[x][y-1]<h[x][y]) f[x][y]=max(f[x][y],sear(x,y-1)+1);
if(x<c&&h[x+1][y]<h[x][y]) f[x][y]=max(f[x][y],sear(x+1,y)+1);
if(y<r&&h[x][y+1]<h[x][y]) f[x][y]=max(f[x][y],sear(x,y+1)+1);
return f[x][y];
}
int main(){
cin>>r>>c;
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++) cin>>h[i][j];
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++){
if(!f[i][j]) sear(i,j);
ans=max(ans,f[i][j]);
}
cout<<ans;
}