#include <bits/stdc++.h>
using namespace std;
long long v[101000][3];
int n;
long long dd[101000][3];
int main() {
  scanf("%d ", &n);
  for (int i = (0); i < (n); i++) scanf("%I64d ", &v[i][0]);
  for (int i = (0); i < (n); i++) scanf("%I64d ", &v[i][1]);
  for (int i = (0); i < (n); i++) scanf("%I64d ", &v[i][2]);
  for (int i = (0); i < (101000); i++) {
    for (int j = (0); j < (3); j++) {
      dd[i][j] = -1e17;
    }
  }
  dd[0][0] = 0;
  for (int i = (0); i < (n); i++) {
    long long tmp = dd[i][0];
    long long tmp2 = 0;
    if (i + 1 < n) {
      for (int j = (i); j < (i + 2); j++)
        for (int k = (0); k < (3); k++) tmp2 += v[j][k];
      dd[i + 2][2] = max(dd[i + 2][2], tmp + tmp2);
    }
    dd[i + 1][0] = max(dd[i + 1][0], tmp + v[i][0]);
    dd[i + 1][1] = max(dd[i + 1][1], tmp + v[i][0] + v[i][1]);
    dd[i + 1][2] = max(dd[i + 1][2], tmp + v[i][0] + v[i][1] + v[i][2]);
    if (i == 0) continue;
    tmp = dd[i][1];
    dd[i + 1][0] = max(dd[i + 1][0], tmp + v[i][0] + v[i][1]);
    dd[i + 1][1] = max(dd[i + 1][1], tmp + v[i][1]);
    dd[i + 1][2] = max(dd[i + 1][2], tmp + v[i][1] + v[i][2]);
    tmp = dd[i][2];
    if (i + 1 < n) {
      dd[i + 2][0] = max(dd[i + 2][0], tmp + tmp2);
    }
    dd[i + 1][0] = max(dd[i + 1][0], tmp + v[i][0] + v[i][1] + v[i][2]);
    dd[i + 1][1] = max(dd[i + 1][1], tmp + v[i][1] + v[i][2]);
    dd[i + 1][2] = max(dd[i + 1][2], tmp + v[i][2]);
  }
  printf("%I64d", dd[n][2]);
  return 0;
}
