#include <iostream>
#include <vector>
using namespace std;
int num ;
vector<int> things;
int n;
void dfs(int sum, int pos) {
if (sum == 40) {
num++;
return;
} else if (sum>40) return;
else {
for (int i = pos; i <= things.size()-1; i++) {
dfs(sum+ things[pos], i+1);//最难理解的部分:以当前位置及之后的每个位置为新的起点,向前搜索一步
}
}
}
int main() {
while (cin >> n) { // 注意 while 处理多个 case
things.clear();
num = 0;
while (n--) {
int temp;
cin >> temp;
things.push_back(temp) ;
}
dfs(0, 0);
cout << num << endl;
}
}
// 64 位输出请用 printf("%lld")// 64 位输出请用 printf("%lld")