#include <iostream>
using namespace std;
typedef long long ll;
int n, ans;
int m[21];
int choose[21];
int main() {
freopen("subsets.in", "r", stdin);
freopen("subsets.out", "w", stdout);
cin.tie(0)->sync_with_stdio(false), cout.tie(0);
cin >> n;
for (int i = 1; i <= n; ++i) {
cin >> m[i];
}
for (int cover = 0; cover <= (1 << n) - 1; ++cover) {
if (__builtin_popcount(cover) < 2) continue;
int pos = 0, sum = 0;
for (int i = 1; i <= n; ++i) {
if ((cover >> (i - 1)) & 1) {
choose[++pos] = m[i];
sum += m[i];
}
}
if (sum & 1) continue;
for (int againcover = 1; againcover <= (1 << pos) - 1; ++againcover) {
int ssum = 0;
for (int i = 1; i <= pos; ++i) {
if ((againcover >> (i - 1)) & 1) ssum += choose[i];
if (ssum > sum / 2) break;
}
if (ssum == sum / 2) {
ans++;
break;
}
}
}
cout << ans << endl;
return 0;
}