#include<bits/stdc++.h>
using namespace std;
int n,a[71],used[71],sum,minn,len,m;
bool bj;
void dfs(int zu,int last,int rest){
if(zu==m) {
bj=1;
return ;
}
for(int i=last+1;i<=n;i++){
if(!used[i]){
if(rest==a[i]){
used[i]=1;
dfs(zu+1,1,len);
if(bj==1) return;
}
if(rest>a[i]){
used[i]=1;
dfs(zu,i,rest-a[i]);
if(bj==1) return;
used[i]=0;
while(i<n and a[i]==a[i+1]) i++;
}
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
sum+=a[i];
minn=max(minn,a[i]);
}
sort(a+1,a+1+n,greater<int>());
for(int i=minn;i<=sum;i++){
if(sum%i==0){
fill(used+1,used+1+n,0);
len=i,bj=0,m=sum/i;
dfs(1,1,len-a[1]);
if(bj) {
cout<<i<<"\n";
return 0;
}
}
}
return 0;
}