#include <bits/stdc++.h>
template <typename T>
void swap(T &x, T &y) {
  T t = x;
  x = y;
  y = t;
  return;
}
template <typename T>
T abs(T x) {
  return (0 <= x ? x : -x);
}
template <typename T>
T max(T a, T b) {
  return (b <= a ? a : b);
}
template <typename T>
T min(T a, T b) {
  return (a <= b ? a : b);
}
template <typename T>
bool setmin(T &a, T b) {
  if (a <= b) {
    return false;
  } else {
    a = b;
    return true;
  }
}
template <typename T>
bool setmax(T &a, T b) {
  if (b <= a) {
    return false;
  } else {
    a = b;
    return true;
  }
}
template <typename T>
T gcd(T a, T b) {
  return (b == 0 ? a : gcd(b, a % b));
}
template <typename T>
T lcm(T a, T b) {
  return a / gcd(a, b) * b;
}
int h, w, a[3][3];
int ans;
int main() {
  scanf("%d%d", &h, &w);
  if (h > 3 || w > 3) {
    return 1;
  }
  for (int i = (0); i < (h); i++) {
    for (int j = (0); j < (w); j++) {
      scanf("%d", &a[i][j]);
      ans += a[i][j];
    }
  }
  if (h == 3 && w == 3) {
    ans -= min(min(a[0][2], a[2][0]), a[1][1]);
  }
  printf("%d\n", ans);
  return 0;
}
