#include<bits/stdc++.h>
using namespace std;
int a[1005],cnt,n,sum=0;
bool vis[1005];
static inline int read()
{
int x=0,f=1;
char s=getchar();
while(s<'0'||s>'9')
{
if(s=='-')
{
f=-1;
}
s=getchar();
}
while(s>='0'&&s<='9')
{
x=(x<<1)+(x<<3)+(s^48);
s=getchar();
}
return x*f;
}
static inline bool cmp(int x,int y)
{
return x>y;
}
static inline bool dfs(int k,int step,int rest,int len)
{
int i;
if(k==n+1&&rest==0)
{
return true;
}
else
{
if(k==n+1)
{
return false;
}
else
{
if(rest==0)
{
rest=len;
step=0;
}
}
}
for(i=step+1;i<=n;i++)
{
if(vis[i]==0)
{
if(rest-a[i]>=0)
{
vis[i]=true;
if(dfs(k+1,i,rest-a[i],len))
{
return true;
}
vis[i]=false;
if(a[i]==rest||len==rest)
{
break;
}
while(a[i]==a[i+1])
{
i++;
}
}
}
}
return false;
}
int main()
{
int i;
n=read();
for(i=1;i<=n;++i)
{
a[i]=read();
sum+=a[i];
}
sort(a+1,a+1+n,cmp);
for(i=a[1];i<=sum;++i)
{
if(sum%i==0)
{
if(dfs(1,0,i,i))
{
printf("%d",i);
break;
}
}
}
return 0;
}