#include<bits/stdc++.h>
using namespace std;
int mx=0,sum=0,n,len;
int a[100],vis[100];
bool flg=0;
bool cmp(int x,int y)
{
return x>y;
}
void dfs(int tot,int l,int now)
{
//printf("%d %d %d",tot,l,now);
int i;
if(flg) return ;
if(tot==n&&l==0)
{
flg=1;
return;
}
int last=-1;
for(i=now;i<=n;i++)
{
if(vis[i]) continue;
if(a[i]+l<=len)
{
if(l+a[i]==last) continue;
last=l+a[i];
vis[i]=1;
if(a[i]+l==len) dfs(tot+1,0,1);
else dfs(tot+1,l+a[i],i+1);
vis[i]=0;
if(a[i]+l==len||l==0) break;
}
}
}
int main()
{
int i,j,k;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>a[i];
mx=max(mx,a[i]);
sum+=a[i];
}
for(len=mx;len<=sum;len++)
{
//printf("%d %d\n",sum,len);
if(!(sum%len))
{
flg=0;
dfs(0,0,1);
if(flg==1)
{
cout<<len;
break;
}
}
}
return 0;
}