#include<bits/stdc++.h>
using namespace std;
const int INF=0x3f3f3f3f;
const double EPS=1e-8;
const int fx[4]={0,0,1,1};
const int fy[4]={0,1,0,1};
long long n=5,ans=0,a[10][10];
bool check(int x,int y,int dir,int cnt,int lst){
if(cnt>=5) return 1;
if(a[x][y]!=lst&&lst!=0) return 0;
int nx=x+fx[dir],ny=y+fy[dir];
return check(nx,ny,dir,cnt+1,a[x][y]);
}
void dfs(int x,int y,int blk,int wht){
if(x>n){
if(wht!=13) return;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
bool ck=0;
if(j+5-1<=n){
ck=check(i,j,1,0,0);
if(ck) return;
}
if(i+5-1<=n){
ck=check(i,j,2,0,0);
if(ck) return;
}
if(i+5-1<=n&&j+5-1<=n){
ck=check(i,j,3,0,0);
if(ck) return;
}
}
}
ans++;
return;
}
int nx=(y==n?x+1:x),ny=(y==n?1:y+1);
a[x][y]=1;
dfs(nx,ny,blk+1,wht);
a[x][y]=2;
dfs(nx,ny,blk,wht+1);
}
int main(){
ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
dfs(1,1,0,0);
cout<<ans<<endl;
return 0;
}