import java.util.Scanner;
public class Main{
static int N = 1005;
static int [][] a = new int[N][N];
static int [][] s = new int[N][N];
static long res = Long.MIN_VALUE;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String [] s1 = in.nextLine().split(" ");
int n = Integer.parseInt(s1[0]);
int m = Integer.parseInt(s1[1]);
for(int i=1;i<=n;i++){
String [] t =in.nextLine().split(" ");
for(int j=1;j<=m;j++){
a[i][j] = Integer.parseInt(t[j-1].trim());
}
}
//前缀和处理
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
s[i][j] = a[i][j] + s[i-1][j] + s[i][j-1] - s[i-1][j-1];
}
}
//查询
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
for(int k=i;k<=n;k++){
for(int l=j;l<=m;l++){
long t = s[k][l] - s[k][j-1] - s[i-1][l] + s[i-1][j-1];
res = Math.max(res, t);
}
}
}
}
System.out.println(res);
}
}