#include <bits/stdc++.h>
#pragma warning(disable : 4996)
using namespace std;
const long double pi = acos(-1.0);
const long double eps = 1e-5;
const int INF = 0x3f3f3f3f;
const long long INFLL = 0x3f3f3f3f3f3f3f3f;
int n, m;
int* s[1010];
long long sx[1010];
long long sy[100010];
inline void join(deque<long long>& q, const long long& v, const int& sz) {
  q.emplace_back(v);
  if (q.size() > sz) {
    sort(q.begin(), q.end());
    q.pop_front();
  }
}
inline long long cal04() {
  long long res1 = 0;
  deque<long long> q;
  for (int i = (1); i <= (n); i++) join(q, sx[i], 4);
  for (long long it : q) res1 += it;
  q.clear();
  for (int i = (1); i <= (m); i++) join(q, sy[i], 4);
  long long res2 = 0;
  for (long long it : q) res2 += it;
  return max(res1, res2);
}
inline long long cal13() {
  long long res = 0;
  for (int i = (1); i <= (n); i++) {
    long long t = sx[i];
    deque<long long> q;
    for (int j = (1); j <= (m); j++) join(q, sy[j] - s[i][j], 3);
    for (long long it : q) t += it;
    res = max(res, t);
  }
  return res;
}
inline long long cal22() {
  long long res = 0;
  for (int i = (1); i <= (n); i++) {
    for (int j = (1); j <= (n); j++) {
      if (i == j) continue;
      long long mx1 = 0;
      long long mx2 = 0;
      for (int k = (1); k <= (m); k++) {
        long long t = sy[k] - s[i][k] - s[j][k];
        if (t > mx1)
          mx1 = t;
        else if (t > mx2)
          mx2 = t;
      }
      res = max(res, sx[i] + sx[j] + mx1 + mx2);
    }
  }
  return res;
}
int main() {
  scanf("%d%d", &n, &m);
  bool f = false;
  if (n > m) swap(n, m), f = true;
  for (int i = (1); i <= (n); i++) s[i] = new int[m + 10];
  if (f)
    for (int i = (1); i <= (m); i++)
      for (int j = (1); j <= (n); j++) scanf("%d", &s[j][i]);
  else
    for (int i = (1); i <= (n); i++)
      for (int j = (1); j <= (m); j++) scanf("%d", &s[i][j]);
  for (int i = (1); i <= (n); i++)
    for (int j = (1); j <= (m); j++) {
      sx[i] += s[i][j];
      sy[j] += s[i][j];
    }
  printf("%lld", max({cal04(), cal13(), cal22()}));
  return 0;
}
