#include<iostream>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
const int Max=70;
int n,sum;
int a[Max];
bool searched[Max];
void dfs(int k,int c,int l,int lp){
if(c==0){
cout<<l;
exit(0);
}
if(k==0){
dfs(l,c-1,l,0);
return;
}
for(int i=lp+1;i<=n;i++){
int t=0;
if(!searched[i]&&k>=a[i]&&a[i]!=a[t]){
searched[i]=1;
dfs(k-a[i],c,l,i);
t=i;
searched[i]=0;
if(lp==0||k==a[i]){
return;
}
}
}
}
int main(){
cin>>n;
int val=0;
for(int i=1;i<=n;i++){
cin>>a[i];
sum+=a[i];
val=max(a[i],val);
}
sort(a+1,a+n+1);
reverse(a+1,a+n+1);
for(int i=val;i<=sum;i++){
if(sum%i==0){
dfs(i,sum/i,i,0);
}
}
}