//注意dp初始赋值,对剩余容量为0,可选物品任意多个的情况都赋值为1.
import java.util.Scanner;
public class test2 {
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
int N=sc.nextInt();
int dp[][]=new int[40+1][N+1];
int a[]=new int[N+1];
for(int i=1;i<=N;i++) {
a[i]=sc.nextInt();
}
for(int i=0;i<=N;i++) {
dp[0][i]=1;
}
for(int k=1;k<=N;k++) {
for(int w=1;w<=40;w++) {
dp[w][k]=dp[w][k-1];
if(w-a[k]>=0) {
dp[w][k]+=dp[w-a[k]][k-1];
}
}
}
System.out.println(dp[40][N]);
}
}