#include <iostream>
using namespace std;

//(cur_v, index, select):当(40, i, sel)时,新出现一种选择方式,sel++

int items[20], cur_v = 0, selection = 0, n;
int visited[20];
  void DFS(int index){
    if(cur_v == 40) { //成功得到物品条件
        selection++;
        return ;
    }

    //剪枝
    for(int i=index; i<n; ++i){
        if(visited[i] || (cur_v+items[i])>40) continue;
    
    visited[i] = 1;
    cur_v += items[i];
    DFS(i+1);
    visited[i] = 0;
    cur_v -= items[i];

    }
}

int main() {
   cin>>n;
   for(int i=0; i<n; ++i){
    cin>>items[i];
   }

   for(int i=0; i<n; ++i){
    visited[i] = 0;
   }
   DFS(0);
   cout<<selection<<endl;

}