#include <bits/stdc++.h>
#define VA AnhNguyenProV2
#define pb push_back
#define ll long long
#define FOR(i, a, b) for(int i = int(a); i <= int(b); i++)
#define FORD(i, a, b) for(int i = int(a); i >= int(b); i--)
#define REP(i, r) for(int i = 0; i < r; i++)
#define FAST ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define READFILE freopen("input.txt", "r", stdin)
#define WRITEFILE freopen("output.txt", "w", stdout);
#define fi first
#define se second
#define MAX 10004
using namespace std;

ll f[MAX][22];
int a[MAX][8],n;
    vector<int> BIT={0,1,2,4,5,8,9,10};

bool getBit(int x, int i)
{
    return (x>>i)&1;
}

bool Ok(int a, int b)
{
    for(int i=0; i<4 ; i++)
    {
        if (getBit(a,i) && getBit(b,i))
        {
            return false;
        }
    }
    return true;
}

ll sumState(int i, int x)
{
    ll sum=0;
    for(int j=0; j<4; j++)
    {
        if (getBit(x,j))
        {
            sum+=(ll)a[i][j];
        }
    }
    return sum;
}


void QHD()
{
    FOR(i,1,n)
    {
        for(int j:BIT)
        {
            for(int k:BIT)
            {
                if(Ok(j,k))

                    f[i][j]=max(f[i][j],f[i-1][k]+sumState(i,j));
            }
        }
    }
}

void Xuat()
{
    ll kq=0;
    for(int i: BIT) kq=max(kq,f[n][i]);
    cout<<kq;
}

void Xuat1()
{
        for(int j: BIT)
        {
            cout<<f[n][j]<<" ";
        }
}

int main()
{
	#ifndef ONLINE_JUDGE
    	READFILE;
    #endif
    FAST;

    cin >> n;
    FOR(i,0,4)
        FOR(j,1,n)
        {
            cin >> a[j][i];
        }
    QHD();
    Xuat();
    return 0;
}