#include <bits/stdc++.h>
#define int long long
using namespace std;
int d[10005][2][2][2][2] = {0};
int y[10005][5];
signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
int n;
cin >> n;
int maxs = -1e18;
int ans = -1e18;
int oooo = 1;
while(oooo <= 4){
    for(int i = 1; i <= n; i ++ ) {
        cin >> y[i][oooo];
        ans = max(y[i][oooo], ans);
    }
    oooo++;
}

for(int i = 1; i <= n; i ++ ) {
    ///0001
    d[i][0][0][0][1] = max
    ({
        y[i][4],
        y[i][4] + d[i-1][1][0][0][0],
        y[i][4] + d[i-1][0][1][0][0],
        y[i][4] + d[i-1][0][0][1][0],
        y[i][4] + d[i-1][1][0][1][0],
        y[i][4] + d[i-1][0][0][0][0]
    });
    ///0010
    d[i][0][0][1][0] = max
    ({
        y[i][3],
        y[i][3] + d[i-1][1][0][0][0],
        y[i][3] + d[i-1][0][1][0][0],
        y[i][3] + d[i-1][0][0][0][1],
        y[i][3] + d[i-1][0][1][0][1],
        y[i][3] + d[i-1][1][0][0][1],
        y[i][3] + d[i-1][0][0][0][0]    
    });
    ///0100
    d[i][0][1][0][0] = max
    ({
        y[i][2],
        y[i][2] + d[i-1][1][0][0][0],
        y[i][2] + d[i-1][0][0][1][0],
        y[i][2] + d[i-1][0][0][0][1],
        y[i][2] + d[i-1][1][0][1][0],
        y[i][2] + d[i-1][1][0][0][1],
        y[i][2] + d[i-1][0][0][0][0]
    });
    ///1000
    d[i][1][0][0][0] = max
    ({
        y[i][1],
        y[i][1] + d[i-1][0][1][0][1],
        y[i][1] + d[i-1][0][1][0][0],
        y[i][1] + d[i-1][0][0][1][0],
        y[i][1] + d[i-1][0][0][0][1],
        y[i][1] + d[i-1][0][0][0][0]
    });
    ///1010
    d[i][1][0][1][0] = max
    ({
        y[i][1] + y[i][3],
        y[i][1] + y[i][3] + d[i-1][0][1][0][0],
        y[i][1] + y[i][3] + d[i-1][0][1][0][1],
        y[i][1] + y[i][3] + d[i-1][0][0][0][1],
        y[i][1] + y[i][3] + d[i-1][0][0][0][0]
    });
    ///1001
    d[i][1][0][0][1] = max
    ({
        y[i][1] + y[i][4],
        y[i][1] + y[i][4] + d[i-1][0][1][0][0],
        y[i][1] + y[i][4] + d[i-1][0][0][1][0],
        y[i][1] + y[i][4] + d[i-1][0][0][0][0]
    });
    ///0101
    d[i][0][1][0][1] = max
    ({
        y[i][2] + y[i][4],
        y[i][2] + y[i][4] + d[i-1][1][0][0][0],
        y[i][2] + y[i][4] + d[i-1][0][0][1][0],
        y[i][2] + y[i][4] + d[i-1][1][0][1][0],
        y[i][2] + y[i][4] + d[i-1][0][0][0][0]
    });
    ///0000
    d[i][0][0][0][0] = max
    ({
        d[i-1][1][0][0][0],
        d[i-1][0][1][0][0],
        d[i-1][0][0][1][0],
        d[i-1][0][0][0][1],
        d[i-1][1][0][1][0],
        d[i-1][1][0][0][1],
        d[i-1][0][1][0][1],
        d[i-1][0][0][0][0]
    });
    maxs = max({maxs, d[i][0][1][0][0], d[i][1][0][0][0],
               d[i][0][0][1][0], d[i][0][0][0][1],
               d[i][1][0][1][0], d[i][0][1][0][1],
               d[i][1][0][0][1], d[i][0][0][0][0]
               });
}if(maxs != 0)
cout << maxs;
else cout <<ans;
return 0;
}
///|  /\_/\
///| (= ._.) ?
///| / >0 \>1