//我算出的答案是:101466
import java.math.*;
import java.util.*;
public class Main {
static int h=3,l=10;
static int[][]a=new int[100][100];
static Set set =new HashSet<String>();
public static void caculate()
{
int flag=1;
for(int i=1;i<l;i++) //周围四格是否一样
{
if((a[1][i]+a[1][i-1]+a[0][i-1]+a[0][i])%4==0)
{
flag=0;
break;
}
else if((a[1][i]+a[1][i-1]+a[2][i-1]+a[2][i])%4==0)
{
flag=0;
break;
}
}
if(flag==1) //哈希判定
{
int sum=0;
int now=1;
for(int i=0;i<h;i++)
for(int j=0;j<l;j++)
{
sum+=a[i][j]*now;
now*=2;
}
String s=Integer.toBinaryString(sum);
set.add(s);
}
}
public static void dfs(int x,int y)
{
if(x>=h||y>=l) return ;
//System.out.println(x+" "+y);
if(a[x][y]==-1)
{
if(y+1<l&&a[x][y+1]==-1) //行放
{
for(int i=0;i<2;i++)
{
a[x][y]=a[x][y+1]=i;
if(y+1==l) dfs(x+1,0);
else dfs(x,y+1);
a[x][y]=a[x][y+1]=-1;
}
}
if(x+1<h&&a[x+1][y]==-1) //列放
{
for(int i=0;i<2;i++)
{
a[x+1][y]=a[x][y]=i;
if(y+1==l) dfs(x+1,0);
else dfs(x,y+1);
a[x][y]=a[x+1][y]=-1;
}
}
}
else
{
if(x==h-1&&y==l-1)
{
caculate(); //判断是否符合要求 和是否有重复
/*for(int i=0;i<h;i++)
{
for(int j=0;j<l;j++) System.out.print(a[i][j]+" ");
System.out.println();
}
System.out.println();*/
return ;
}
if(y==l-1)
{
dfs(x+1,0);
}
else dfs(x,y+1);
}
}
public static void main(String[] args)
{
for(int i=0;i<h;i++)
for(int j=0;j<l;j++) a[i][j]=-1;
dfs(0,0);
System.out.println(set.size());
}
}