#include <bits/stdc++.h>
using namespace std;
int a[20],b[20],n,c;
char f[20];
string s = "+-*";

/*
 1 2 3 4
 + * *
*/
void pd(){
	for(int i = 1;i <= n;i++){
		b[i] = a[i];
	}

	for(int i = 1;i <= n - 1;i++){
		if(f[i] == '*'){
			b[i+1] = b[i+1] * b[i];
			if(f[i-1]=='-') b[i+1] = b[i+1] * -1;
			b[i] = 0;
		}
	}
	int s = b[1];
	for(int i = 2;i <= n;i++){
		if(f[i-1] == '+' || f[i-1]=='*') s = s + b[i];
		else if(f[i-1] == '-') s = s - b[i];
	}
	if(s == 24){
		c++;
	}
}

//递归填入n-1个符号,然后判断结果是否是24点 
void dfs(int k){
	for(int i = 0;i < s.size();i++){
		f[k] = s[i];
		if(k == n - 1){
			pd();
		}else{
			dfs(k+1);	
		}
		
	}
}
 
int main(){
	cin>>n;
	for(int i = 1;i <= n;i++){
		cin>>a[i];
	}
	
	dfs(1);
	cout<<c;
	return 0;
}

/**************************************************************
	Problem: 1956
	User: admin
	Language: C++
	Result: Accepted
	Time:71 ms
	Memory:2072 kb
****************************************************************/