#include<bits/stdc++.h>
using namespace std;
using ll=long long;
const ll inf=1e14;
ll n,A[8][10004],f[256][10004],sa=-inf;
vector<int>T[256];
bool check_mask[256],ss_mask[256][256];
bool check(int mask)
{
for(int i=1;i<8;i++)
if((mask&(1<<i)) && (mask&(1<<(i-1))))
return 0;
return 1;
}
ll cal(int mask, int cot)
{
ll ans=0;
for(int i=0;i<8;i++)
{
if((mask&(1<<i)))
ans+=A[i][cot];
}
return ans;
}
bool ss(int A, int B)
{
for(int i=0;i<8;i++)
{
int a=((A&(1<<i))>0),
b=((B&(1<<i))>0);
if(a && b)
return 0;
}
return 1;
}
void build()
{
for(int i=0;i<256;i++)
if(check(i)) check_mask[i]=1;
for(int mask=0;mask<256;mask++)
{
if(check_mask[mask])
for(int M=0;M<256;M++)
{
if(check_mask[M])
{
if(ss(mask,M))
{
f[mask][M]=1;
T[mask].push_back(M);
}
}
}
}
}
int main()
{
cin>>n;
for(int i=0;i<8;i++)
for(int j=0;j<n;j++)
{
cin>>A[i][j];
sa=max(sa,A[i][j]);
}
if(sa<0)
{
cout<<sa;
return 0;
}
build();
for(int i=0;i<256;i++)
for(int j=0;j<n;j++)
f[i][j]=-inf;
for(int mask=0;mask<256;mask++)
if(check_mask[mask])
f[mask][0]=cal(mask,0);
for(int j=1;j<n;j++)
{
for(int mask=0;mask<256;mask++)
{
if(check_mask[mask])
for(int M:T[mask])
{
f[mask][j]
=max(f[mask][j],
f[M][j-1]+cal(mask,j));
}
}
}
ll ans=0;
for(int mask=0;mask<256;mask++)
ans=max(ans,f[mask][n-1]);
cout<<ans;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdXNpbmcgbGw9bG9uZyBsb25nOwpjb25zdCBsbCBpbmY9MWUxNDsKCmxsIG4sQVs4XVsxMDAwNF0sZlsyNTZdWzEwMDA0XSxzYT0taW5mOwp2ZWN0b3I8aW50PlRbMjU2XTsKYm9vbCBjaGVja19tYXNrWzI1Nl0sc3NfbWFza1syNTZdWzI1Nl07CmJvb2wgY2hlY2soaW50IG1hc2spCnsKICAgIGZvcihpbnQgaT0xO2k8ODtpKyspCiAgICAgICAgaWYoKG1hc2smKDE8PGkpKSAmJiAobWFzayYoMTw8KGktMSkpKSkKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICByZXR1cm4gMTsKfQpsbCBjYWwoaW50IG1hc2ssIGludCBjb3QpCnsKICAgIGxsIGFucz0wOwogICAgZm9yKGludCBpPTA7aTw4O2krKykKICAgIHsKICAgICAgICBpZigobWFzayYoMTw8aSkpKQogICAgICAgICAgICBhbnMrPUFbaV1bY290XTsKICAgIH0KICAgIHJldHVybiBhbnM7Cn0KYm9vbCBzcyhpbnQgQSwgaW50IEIpCnsKICAgIGZvcihpbnQgaT0wO2k8ODtpKyspCiAgICB7CiAgICAgICAgaW50IGE9KChBJigxPDxpKSk+MCksCiAgICAgICAgYj0oKEImKDE8PGkpKT4wKTsKICAgICAgICBpZihhICYmIGIpCiAgICAgICAgICAgIHJldHVybiAwOwogICAgfQogICAgcmV0dXJuIDE7Cn0Kdm9pZCBidWlsZCgpCnsKICAgIGZvcihpbnQgaT0wO2k8MjU2O2krKykKICAgICAgICBpZihjaGVjayhpKSkgY2hlY2tfbWFza1tpXT0xOwogICAgZm9yKGludCBtYXNrPTA7bWFzazwyNTY7bWFzaysrKQogICAgewogICAgICAgIGlmKGNoZWNrX21hc2tbbWFza10pCiAgICAgICAgZm9yKGludCBNPTA7TTwyNTY7TSsrKQogICAgICAgIHsKICAgICAgICAgICAgaWYoY2hlY2tfbWFza1tNXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYoc3MobWFzayxNKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBmW21hc2tdW01dPTE7CiAgICAgICAgICAgICAgICAgICAgVFttYXNrXS5wdXNoX2JhY2soTSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KaW50IG1haW4oKQp7CiAgICBjaW4+Pm47CiAgICBmb3IoaW50IGk9MDtpPDg7aSsrKQogICAgICAgIGZvcihpbnQgaj0wO2o8bjtqKyspCiAgICAgICAgewogICAgICAgICAgICBjaW4+PkFbaV1bal07CiAgICAgICAgICAgIHNhPW1heChzYSxBW2ldW2pdKTsKICAgICAgICB9CiAgICBpZihzYTwwKQogICAgewogICAgICAgIGNvdXQ8PHNhOwogICAgICAgIHJldHVybiAwOwogICAgfQogICAgYnVpbGQoKTsKICAgIGZvcihpbnQgaT0wO2k8MjU2O2krKykKICAgICAgICBmb3IoaW50IGo9MDtqPG47aisrKQogICAgICAgICAgICBmW2ldW2pdPS1pbmY7CiAgICBmb3IoaW50IG1hc2s9MDttYXNrPDI1NjttYXNrKyspCiAgICAgICAgaWYoY2hlY2tfbWFza1ttYXNrXSkKICAgICAgICAgICAgZlttYXNrXVswXT1jYWwobWFzaywwKTsKICAgIGZvcihpbnQgaj0xO2o8bjtqKyspCiAgICB7CiAgICAgICAgZm9yKGludCBtYXNrPTA7bWFzazwyNTY7bWFzaysrKQogICAgICAgIHsKICAgICAgICAgICAgaWYoY2hlY2tfbWFza1ttYXNrXSkKICAgICAgICAgICAgZm9yKGludCBNOlRbbWFza10pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGZbbWFza11bal0KICAgICAgICAgICAgICAgID1tYXgoZlttYXNrXVtqXSwKICAgICAgICAgICAgICAgICAgICAgICAgIGZbTV1bai0xXStjYWwobWFzayxqKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBsbCBhbnM9MDsKICAgIGZvcihpbnQgbWFzaz0wO21hc2s8MjU2O21hc2srKykKICAgICAgICBhbnM9bWF4KGFucyxmW21hc2tdW24tMV0pOwogICAgY291dDw8YW5zOwp9Cg==