#include <iostream>
int data[8][5]={0};
int b[8][5]={0};
int m,n;
int dy[3]={0,-1,1};
int k=0;
int mon;
int max;
void dfs(int x,int y,int step)
{
if(step==n)
{
//printf("%d",mon);
if(max<mon)
max=mon;
return;
}
for(int i=0;i<3;i++)
{
int nx=x-1;
int ny=y+dy[i];
if(nx>=0&&nx<n&&ny>=0&&ny<5)
{
if(data[nx][ny]==1)
{
mon++;
}
if(data[nx][ny]==2)
{
mon--;
}
dfs(nx,ny,step+1);
if(data[nx][ny]==1)
{
mon--;
}
if(data[nx][ny]==2)
{
mon++;
}
}
}
}
int main()
{
freopen("input.txt","r",stdin);
scanf("%d",&n);
for(int i=0;i<n;i++)
{
for(int j=0;j<5;j++)
{
scanf("%d",&data[i][j]);
}
}
printf("xx\n");
for(int q=0;q<n;q++)
{
for(int j=0;j<5;j++)
{
b[q][j]=data[q][j];
}
}
while(n-k>=5)
{ printf("*\n");
for(int i=0;i<n;i++)
{
for(int j=0;j<5;j++)
{
data[i][j]=b[i][j];
}
}
for(int i=n-k-1;i>=n-k-5;i--)
{
for(int j=0;j<5;j++)
{
if(data[i][j]==2)
data[i][j]=0;
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<5;j++)
{
printf("%d",data[i][j]);
}
printf("\n");
}
k++;
dfs(n,2,0);
mon=0;
}
printf("%d",max);
}