#include <iostream>
#include <cstring>
using namespace std;
int main(){
int n=0, arr[25], dp[30][50];
cin >> n;
memset(dp, 0, sizeof(dp));
for(int i=0; i<=n; ++i) //本题,任何物品,v=0时,都有一种选择情况成立
dp[i][0]=1;
for(int i=1; i<=n; ++i){
cin >> arr[i];
}
for(int i=1; i<=n; ++i){ //背包容量为40
for(int j=0; j<=40; ++j){ //从大到小也可
dp[i][j]=dp[i-1][j];
if(j>=arr[i])
dp[i][j] += dp[i-1][j-arr[i]];
}
}
cout << dp[n][40] << endl;
return 0;
}