#include<bits/stdc++.h>
using namespace std;
int a[366][17];
int mv[9]={1,2,-1,-2,-4,-8,4,8,0};
int gan[366][17];
int n,an;
int zx1,zs1,ys1,yx1;
void bfs(int now,int zs,int zx,int ys,int yx)
{
if(an==1)
{
return;
}
for(int i=0;i<9;i++)
{
zx1=zx+mv[i];
zs1=zs+mv[i];
yx1=yx+mv[i];
ys1=ys+mv[i];
int fl=0;
if(zx1>=1&&zx1<=16&&zs1>=1&&zs1<=16&&yx1>=1&&yx1<=16&&ys1>=1&&ys1<=16)
{
for(int i=1;i<=16;i++)
{
if(i!=zx1&&i!=zs1&&i!=yx1&&i!=ys1)
{
gan[now+1][i]=gan[now][i]+1;
}
if(i==zx1||i==zs1||i==yx1||i==ys1)
{
gan[now+1][i]=0;
if(a[now+1][i]==1)
{
fl=1;
break;
}
}
if(gan[now+1][i]>=7)
{
fl=1;
break;
}
}
if(fl==1)
{
continue;
}
else
{
if(now+1==n)
{
an=1;
return;
}
bfs(now+1,zs1,zx1,ys1,yx1);
for(int i=1;i<=16;i++)
{
gan[now+1][i]=0;
}
}
}
}
return;
}
int main()
{
while(cin>>n&&n!=0)
{
an=0;
memset(a,0,sizeof(a));
memset(gan,0,sizeof(gan));
for(int j=1;j<=n;j++)
{
for(int i=1;i<=16;i++)
{
cin>>a[i][j];
}
}
if(a[6][1]==1||a[7][1]==1||a[10][1]==1||a[11][1]==1)
{
cout<<0<<'\n';
continue;
}
bfs(1,6,10,7,11);
cout<<an<<'\n';
}
}