#include <cstdio>
#include <cstring>

int n, s[110], w, dt[110][1101010];

int f(int x, int c)
{
    if( x == n ) return c == w;
    if( ~dt[x][c] ) return dt[x][c];
    return dt[x][c] = (f(x+1, c) + f(x+1, c+s[x]))%1000000007;
}

int main()
{
    memset(dt, -1, sizeof(dt));
    freopen(".20.in", "r", stdin);
    freopen(".20.out","w",stdout);
    scanf("%d", &n);
    for(int i = 0 ; i < n ; i++ )
        scanf("%d", s+i), w+=s[i];
    if( w%2 ) printf("0");
    else w/=2, printf("%d", f(0, 0)/2);
}
