#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);

	  }