#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
****************************************************************/