#include <bits/stdc++.h>
#define maxn 70
using namespace std;
using ll = long long;
ll n,a[maxn],sum;
bool v[maxn];
ll val,tot,len;
inline bool dfs(ll stick,ll cab,ll last)
{
if(stick>tot) return true;
if(cab == len) return dfs(stick+1,0,1);
int fail = 0;
for(int i = last;i<=n;i++)
{
if(!v[i] && cab+a[i]<=len && fail!=a[i])
{
v[i] = 1;
if(dfs(stick,cab+a[i],i+1)) return true;
v[i] = 0;
fail = a[i];
if(cab == 0 && cab+a[i]==len) return false;
}
}
return false;
}
int read(){
int x=0,f=1;
char c=getchar();
while(c<'0'||c>'9'){
if(c=='-') f=-1;
c=getchar();
}
while(c>='0'&&c<='9'){
x=x*10+c-'0';
c=getchar();
}
return x*f;
}
int main() {
n = read();
for(int i = 1;i<=n;i++)
{
a[i] = read();
sum+=a[i];
val = max(val,a[i]);
}
sort(a+1,a+1+n);
reverse(a+1,a+1+n);
for(len = val;len<=sum;len++)
{
if(sum%len!=0) continue;
tot = sum/len;
memset(v,0,sizeof(v));
if(dfs(1,0,1)) break;
}
cout<<len<<endl;
return 0;
}