#include <bits/stdc++.h>
using namespace std;
int n,a[90];
int Max,he;
int cnt;
int tot;
int i1;
bool vis[90];
bool check(int wei,int flag,int pan){
pan += a[wei];
vis[wei] = true;
tot++;
if(pan == flag) {
pan = 0;
return true;
}
if(pan > flag) {
vis[wei] = false;
pan -= a[wei];
tot--;
return false;
}
for(int i = wei;i <= n;i ++){
if(vis[i]) continue;
if(check(i,flag,pan)) return true;
}
vis[wei] = false;
tot--;
return false;
}
bool cmp(int x,int y){
return x > y;
}
int main(){
scanf("%d",&n);
int N = n;
for(int i = 1;i <= N;i ++){
int g;
scanf("%d",&g);
if(g > 50){
n--;
continue;
}
a[++i1] = g;
he += a[i1];
Max = max(Max,a[i1]);
}
sort(a + 1,a + n + 1,cmp);
for(int i = 1;i <= he;i ++){
if(he % i == 0 && i >= Max) {
tot = 0;
cnt = 0;
memset(vis,false,sizeof vis);
for(int j = 1;j <= n;j ++){
if(!vis[j]&&check(j,i,0)) cnt++;
}
if(cnt == he / i && tot == n){
cout << i;
return 0;
}
}
}
}