#include<bits/stdc++.h>
using namespace std;
int num=0;
int size;
void dfs(int i,int count,vector<int>pocket)
{ if(count<0||i>=size){return ;}
if(count==0){num++;return ;}
dfs(i+1,count-pocket[i],pocket);//第i+1个装
dfs(i+1,count,pocket);//第i+1个不装
}
int main(){
//总体积必须是40
int n;cin>>n;
size=n;
vector<int>pocket;
int in;
while(cin>>in){
pocket.push_back(in);
}
//递归
//有两种情况,东西装与不装
dfs(0,40,pocket);
dfs(0,40-pocket[0],pocket);
cout<<num;
return 0;
}