#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
const long double pi = acos(-1.0);
const long double eps = 1e-9;
const int MAX_SIZE = 50;
const int dX[] = {-1, 1, 0, 0, -1, 1, -1, 1};
const int dY[] = {0, 0, -1, 1, 1, -1, -1, 1};
template <class S, class T>
ostream& operator<<(ostream& o, const pair<S, T>& a) {
  o << a.first << " " << a.second;
  return o;
}
template <class S, class T>
ostream& operator<<(ostream& o, const map<S, T>& a) {
  for (typeof((a).begin()) it = (a).begin(); it != (a).end(); it++)
    o << (*it) << "\n";
  return o;
}
template <class S>
ostream& operator<<(ostream& o, const vector<S>& a) {
  for (typeof((a).begin()) it = (a).begin(); it != (a).end(); it++)
    o << *it << " ";
  return o;
}
template <class S>
ostream& operator<<(ostream& o, const vector<vector<S> >& a) {
  for (typeof((a).begin()) it = (a).begin(); it != (a).end(); it++) {
    o << (*it) << "\n";
  }
  return o;
}
template <class S>
ostream& operator<<(ostream& o, const set<S>& a) {
  for (typeof((a).begin()) it = (a).begin(); it != (a).end(); it++)
    o << *it << " ";
  return o;
}
const long long MAX = 2005;
int a[MAX][MAX];
long long diagl[MAX * 2], diagr[MAX * 2];
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  ;
  int i, j, n, x1, y1, x2, y2;
  long long val, max1 = 0, max2 = 0;
  scanf("%d", &n);
  for (i = (0); (((1) > 0) - ((1) < 0)) * i < (((1) > 0) - ((1) < 0)) * (n);
       i += (1)) {
    for (j = (0); (((1) > 0) - ((1) < 0)) * j < (((1) > 0) - ((1) < 0)) * (n);
         j += (1)) {
      scanf("%d", &a[i][j]);
      diagl[i + j] += a[i][j];
      diagr[n - (i - j) - 1] += a[i][j];
    }
  }
  for (i = (0); (((1) > 0) - ((1) < 0)) * i < (((1) > 0) - ((1) < 0)) * (n);
       i += (1)) {
    for (j = ((i % 2));
         (((2) > 0) - ((2) < 0)) * j < (((2) > 0) - ((2) < 0)) * (n);
         j += (2)) {
      val = diagl[i + j] + diagr[n - (i - j) - 1] - a[i][j];
      if (val >= max1) {
        max1 = val;
        x1 = i + 1;
        y1 = j + 1;
      }
    }
    for (j = ((1 - (i % 2)));
         (((2) > 0) - ((2) < 0)) * j < (((2) > 0) - ((2) < 0)) * (n);
         j += (2)) {
      val = diagl[i + j] + diagr[n - (i - j) - 1] - a[i][j];
      if (val >= max2) {
        max2 = val;
        x2 = i + 1;
        y2 = j + 1;
      }
    }
  }
  printf("%I64\d\n%d %d %d %d", max1 + max2, x1, y1, x2, y2);
  return 0;
}
