#include<bits/stdc++.h>
using namespace std;
int n,a[1000],cnt,s[1000],vis[1000],sum;
int sc[5]={3,1,0,0};
void read(int &x)
{
char c=getchar();
x=0;
int flag=1;
while(!isdigit(c))
{
if(c=='-')flag=-1;
c=getchar();
}
while(isdigit(c))
{
x=x*10+c-48;
c=getchar();
}
x*=flag;
}
void write(int x)
{
if(x<0)
putchar('-'),x=-x;
if(x>9)
write(x/10);
putchar(x%10+'0');
return;
}
void dfs(int x,int y)
{
if(s[x]>a[x])
{
return;
}
if(s[x]+((n-y+1)*3)<a[x])
{
return;
}
if(y==n&&a[x]-s[x]==2)
{
return;
}
if(x==n&&s[x]==a[x])
{
cnt++;
return;
}
if(y==n)
{
int t=a[x]-s[x];
if(t==2)return ;
s[y]+=sc[t];
dfs(x+1,x+2);
s[y]-=sc[t];
}else
{
s[x]+=3;
dfs(x,y+1);
s[x]-=3;
s[y]+=3;
dfs(x,y+1);
s[y]-=3;
s[x]+=1;
s[y]+=1;
dfs(x,y+1);
s[x]-=1;
s[y]-=1;
}
}
int main()
{
read(n);
for(int i=1 ; i <= n; i++)
{
read(a[i]);
}
if(n==1)
{
if(a[1]==0)
{
cnt=1;
}
}else
{
dfs(1,2);
}
write(cnt);
return 0;
}