#include <bits/stdc++.h>
using namespace std;
const int N = 10000;
int a[N], len, cnt, v[N], n;
bool cmp(int x, int y) {
if(x>y)
return true;
else
return false;
}
bool dfs(int stick, int cur, int last) {
if(stick>cnt)
return true;
if(cur==len)
return dfs(stick+1, 0, 1);
int fail = 0;
for(int i=last; i<=n; i++) {
if(!v[i] && cur+a[i]<=len && fail!=a[i]) {
v[i] = 1;
if(dfs(stick, cur+a[i], i+1))
return true;
fail = a[i];
v[i] = 0;
if(cur==0 || cur+a[i]==len)
return false;
}
}
return false;
}
int main() {
int sum = 0;
int val = 0;
for(int i=1; i<=n; i++) {
scanf("%d", &a[i]);
sum += a[i];
val = max(val, a[i]);
}
sort(a+1, a+n+1, cmp);
for(len=val; len<=sum; len++) {
if(sum%len)
continue;
cnt = sum/len;
memset(v, 0, sizeof v);
if(dfs(1, 0, 1))
break;
}
cout << len << endl;
return 0;
}