string[] input = Console.ReadLine().Split();
int m = int.Parse(input[0]);
int n = int.Parse(input[1]);
int[,] table = new int[m, n];
for (int i = 0; i < m; i++)
input = Console.ReadLine().Split();
for (int j = 0; j < n; j++)
table[i, j] = int.Parse(input[j]);
for (int i = 0; i < m; i++)
for (int j = 0; j < n - 2; j++)
int sum = table[i, j] + table[i, j + 1] + table[i, j + 2];
maxSum = Math.Max(maxSum, sum);
for (int i = 0; i < m - 2; i++)
for (int j = 0; j < n; j++)
int sum = table[i, j] + table[i + 1, j] + table[i + 2, j];
maxSum = Math.Max(maxSum, sum);
for (int i = 0; i < m - 1; i++)
for (int j = 0; j < n - 1; j++)
int sum = table[i, j] + table[i + 1, j] + table[i + 1, j + 1];
maxSum = Math.Max(maxSum, sum);
for (int i = 0; i < m - 1; i++)
for (int j = 1; j < n; j++)
int sum = table[i, j] + table[i + 1, j] + table[i + 1, j - 1];
maxSum = Math.Max(maxSum, sum);
Console.WriteLine(maxSum);