#include<bits/stdc++.h>
using namespace std;
inline int read(){
int sum=0;
char ch=getchar();
while(ch>57||ch<48) ch=getchar();
while(ch>=48&&ch<=57) sum=sum*10+ch-48,ch=getchar();
return sum;
}
int n,sum,cnt,res,ans,a[100];
bool vis[100] ;
bool cmp(int a,int b){
return a>b;
}
bool dfs(int len,int sta,int now){
if(now==res) return 1;
if(len==0)
if(dfs(ans,1,now+1))return 1;
for(int i=sta;i<=cnt;i++){
if(!vis[i]&&a[i]<=len){
vis[i]=1;
if(dfs(len-a[i],i+1,now))return 1;
vis[i]=0;
if(len==ans||len==a[i])break;
while(a[i]==a[i+1])i++;
}
}
return 0;
}
int main(){
n=read();
for(int i=1;i<=n;i++){
int x;x=read();
if(x>50)continue;
a[++cnt]=x,sum+=x;
}
sort(a+1,a+1+cnt,cmp);
for(int i=a[1];i<=sum;i++){
if(sum%i)continue;
res=sum/i;
ans=i;
if(dfs(ans,1,0)){
printf("%d\n",ans);
return 0;
}
}
return 0;
}