#include<iostream>
#include<vector>
#include<algorithm>
#include<map>
#include<math.h>
#include<set>
#include<string>
#include<stack>
using namespace std;
#include<queue>
#include<sstream>
int main()
{
int n = 0;
cin >> n;
vector<int>v(n);
for (int i = 0; i < n; i++)
{
cin >> v[i];
}
sort(v.begin(), v.end());
//s用来保存已经可以称出的重量
set<int>s;
s.insert(v[0]);
s.insert(0);
for (int i = 1; i < n; i++)
{
vector<int>tmp;
set<int>::iterator it;
//找到用新砝码可以称出的重量
for (it = s.begin(); it != s.end(); it++)
{
tmp.push_back(v[i] + (*it));
tmp.push_back(abs(v[i] - (*it)));
}
//将新砝码可称出的重量放到,已经可称出的集合中
for (int i = 0; i < tmp.size(); i++)
{
s.insert(tmp[i]);
}
}
cout << s.size() - 1;//-1是为了减去开始放进去的0
return 0;
}