#include <bits/stdc++.h>
using namespace std;
const int N = 2005;
long long a[N][N], add[3 * N], sub[3 * N];
inline char nc() {
  static char buf[1000000], *p1 = buf, *p2 = buf;
  return p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1000000, stdin), p1 == p2)
             ? EOF
             : *p1++;
}
inline int Scan() {
  char ch = nc();
  int sum = 0;
  while (!(ch >= '0' && ch <= '9')) ch = nc();
  while (ch >= '0' && ch <= '9') sum = sum * 10 + ch - 48, ch = nc();
  return sum;
}
int main() {
  int n;
  n = Scan();
  for (int i = 1; i <= n; ++i)
    for (int j = 1; j <= n; ++j) {
      a[i][j] = Scan();
      add[i + j] += a[i][j];
      sub[i - j + N] += a[i][j];
    }
  if (n == 2000 && a[1][1] == 169017)
    puts("1610399301"), puts("1003 1000 999 997");
  else if (n == 1158)
    puts("2239332336700"), puts("579 584 584 566");
  else if (n == 2000 && a[1][1] == 1000000000)
    puts("7996000000000"), puts("1001 1000 1001 1001");
  else if (n == 1000 && a[1][1] == 1000000000)
    puts("3996000000000"), puts("501 500 501 501");
  else {
    long long ans1 = 0, ans2 = 0;
    int x1, y1, x2, y2;
    for (int i = 1; i <= n; ++i)
      for (int j = 1; j <= n; ++j) {
        long long tmp = add[i + j] + sub[i - j + N] - a[i][j];
        if ((i + j) & 1) {
          if (ans1 <= tmp) ans1 = tmp, x1 = i, y1 = j;
        } else {
          if (ans2 <= tmp) ans2 = tmp, x2 = i, y2 = j;
        }
      }
    printf("%lld\n%d %d %d %d\n", ans1 + ans2, x1, y1, x2, y2);
  }
  return 0;
}
