#include<bits/stdc++.h>
using namespace std;
const int N=70;
long long n,a[N];
long long len,cnt;
bool used[N],flag=0;
void dfs(int i,int L,int last)
{
if(i>cnt)
{
flag=1;
return ;
}
if(flag)return ;
if(L==len)dfs(i+1,0,1) ;
int fail=0;
for(int j=last;j<=n;j++)
if(used[j]==0&&L+a[j]<=len&&a[j]!=fail)
{
used[j]=1;
dfs(j,L+a[j],j+1);
used[j]=0;
if(flag==0)
{
fail=a[j];
if(L==0||L+a[j]==len)return ;
}
}
}
int main(){
cin>>n;
long long big=0;
long long sum=0;
for(int i=1;i<=n;i++){
cin>>a[i];
sum+=a[i];
big=max(a[i],big);
}
sort(a+1,a+n+1);
reverse(a+1,a+n+1);
for(len=big;len<=sum;len++)
if(sum%len==0)
{
cnt=sum/len;
flag=0;
dfs(1,0,1);
if(flag){
cout<<len;
return 0;
}
}
}