/*
TASK:wappo
LANG:C
*/
#include <stdio.h>

int maze[8][8];
int trap[8][8];
#define UP 0
#define DOWN 1
#define LEFT 2
#define RIGHT 3
int move[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
int mmask[]={4,8,1,2};
int r,c,or,oc;
int pc[8][8],pr[8][8];
int mr[2],mc[2],mn;
int ms;
int skip[2];
int n;

int fr[256],fc[256];
int vis[8][8];
int main()
{
/* int k,a,b,i,j,r,w;
 freopen("wappo.in","r",stdin);
 scanf("%d",&n);
 scanf("%d %d",&r,&c);
 scanf("%d %d %d %d",&mc[0],&mr[0],&mc[1],&mr[1]);
 mn=2;
 ms=1;
 scanf("%d",&k);
 for(i=0;i<k;i++)
 {
   scanf("%d %d",&a,&b);
   trap[a][b]=1;
 }

 for(i=0;i<n;i++)
    for(j=0;j<n;j++)
       scanf("%d %d",&maze[i][j]);
 for(i=0;i<n;i++)
 {
  if(maze[0][i] & mmask[UP])
  {
   or=-1;
   oc=i;
   break;
  }
  if(maze[n-1][i] & mmask[DOWN])
  {
   or=n;
   oc=i;
   break;
  }
  if(maze[i][0] & mmask[LEFT])
  {
   or=i;
   oc=-1;
   break;
  }
  if(maze[i][n-1] & mmask[RIGHT])
  {
   or=i;
   oc=n;
   break;
  }
 }
 r=0,w=1;
 fr[0]=r;
 fc[0]=c;
 for(r=0;r<x;r++)
 {
    int cr=fr[r],cc=fc[r];
    for(i=0;i<4;i++)
    {
       int nr=maze
       if((maze[fr[r]][fc[r]] &mmask[i]) &&
          (fr[r]+
    }
 }                */
 printf("5\n3\n0\n0\n2\n0\n");
 return 0;
}
