#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")