#include<bits/stdc++.h>
using namespace std;
long long n,mn,sum,a[105],used[105],m,len;
bool bj;
bool cmp(int x,int y){
return x>y;
}
void DFS(int k,int last,int rest){
int i,j;
if(k==m){
bj=1;
return;
}
if(rest==0){
for(i=1;i<=n;i++)
if(!used[i]){
used[i]=1;
break;
}
DFS(k+1,i,len-a[i]);
}
for(i=last+1;i<=n;i++){
if(!used[i]&&rest>=a[i]){
used[i]=1;
DFS(k,i,rest-a[i]);
used[i]=0;
j=i;
while(i<n&&a[i]==a[j])i++;
if(i==n)return;
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
mn=max(mn,a[i]);
sum+=a[i];
}
sort(a+1,a+n+1,cmp);
for(int i=mn;i<=sum;i++){
if(sum%i==0){
memset(used,0,sizeof(used));
len=i;
used[1]=1;
bj=0;
m=sum/i;
DFS(1,1,len-a[1]);
if(bj){
cout<<len;
break;
}
}
}
return 0;
}