#include<stdio.h>
int main() {
int j,k;//j代表行,k代表列;
scanf("%d%d",&j,&k);
int a[500][500];//定义一个较大的二维数组进行数值储存;
for(int t=0; t<j; t++) /*循环输入列*/{
for(int i=0; i<k; i++) /*循环输出行*/{
scanf("%d",&a[t][i]);
}
}//以上是二维数组的输入; 结合下面例题深入理解
int max=0;
int x=0,y=0;
for(x=0; x<=j-3; x++) {
for(y=0; y<=k-3; y++) {
int t=0;
t=a[x][y]+a[x+1][y]+a[x+2][y]+a[x][y+1]+a[x+1][y+1]
+a[x+2][y+1]+a[x][y+2]+a[x+1][y+2]+a[x+2][y+2];
if(max<t)max=t;
}
}
printf("%d",max);
return 0;
}