#include<algorithm>
#include<iostream>
#include<cstdio>
using namespace std;
int n,a[70],cnt,sum,x,mx,b[3333],vis[70];
void dfs(int k,int s,int S,int las){
if(k==sum/S+1){
printf("%d",S);
exit(0);
}
for(int i=las+1;i<=n;i++){
if(s+a[i]>S)continue;
if(vis[i])continue;
vis[i]=1;
if(s+a[i]==S)dfs(k+1,0,S,0);
else dfs(k,s+a[i],S,i);
vis[i]=0;
if(s+a[i]==S)return;
if(s==0)return;
while(a[i]==a[i+1]&&i<n)i++;
}
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&x);
if(x>50)continue;
a[++cnt]=x;
sum+=x;
mx=max(mx,x);
}
n=cnt;
cnt=0;
sort(a+1,a+n+1,greater<int>());
if(mx==1){
cout<<1<<endl;
return 0;
}
for(int i=2;i*i<=sum;i++)
if(sum%i==0){
if(i>=mx)b[++cnt]=i;
if(i==sum/i)break;
b[++cnt]=sum/i;
}
sort(b+1,b+cnt+1);
for(int i=1;i<=cnt;i++)
dfs(1,0,b[i],0);
printf("%d",sum);
return 0;
}