#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<queue>#include<algorithm>usingnamespace std;int mp[105][105];int R, C;int res[105][105];int st[4][2]={{-1,0},{0,1},{1,0},{0,-1}};intdfs(int xx,int yy){if(res[xx][yy])return res[xx][yy];
res[xx][yy]=1;for(int i =0; i <4;++i){int tx = xx + st[i][0];int ty = yy + st[i][1];if(tx <0|| ty <0|| tx >= R || ty >= C)continue;if(mp[tx][ty]< mp[xx][yy])
res[xx][yy]=max(res[xx][yy],dfs(tx,ty)+1);}return res[xx][yy];}intmain(){scanf("%d%d",&R,&C);for(int i =0; i < R;++i){for(int j =0; j < C;++j){scanf("%d",&mp[i][j]);}}int op =-1;for(int i =0; i < R;++i){for(int j =0; j < C;++j){
op =max(op,dfs(i, j));}}printf("%d\n", op);return0;}