#include<bits/stdc++.h>
using namespace std;
int n,a[70],b[70],sum,len,flag;
bool yu;
bool cmp(int x,int y){
return x>y;
}
void dfs(int k,int last,int rest){
if(k==sum/len){
yu=1;
return;
}
if(!rest){
int i;
for(i=2;i<=n;i++)
if(b[i]==0) break;
b[i]=1;
dfs(k+1,i,len-a[i]);
b[i]=0;
if(yu) return;
}
for(int i=last+1;i<=n;i++){
if(!b[i]&&rest>=a[i]){
b[i]=1;
dfs(k,i,len-a[i]);
b[i]=0;
int j=i;
while(i<n&&a[j]==a[i]) i++;
}
}
}
int main() {
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
sum+=a[i];
}
sort(a+1,a+1+n,cmp);
for(int i=a[1];i<=sum;i++)
if(sum%i==0){
len=i;
dfs(1,1,len-a[1]);
if(yu==1){
cout<<len;
return 0;
}
}
return 0;
}