#include <bits/stdc++.h>
using namespace std;
vector <int> v;
int tot,cnt,book[70],n,a[70],sum;
void dfs(int already,int cur,int id){
if(already==cnt+1){
std::cout <<tot;
exit(0);
}
int last=0;
for(int i=id;i<=n;i++){
if(book[i]||a[i]==last)continue;
if(cur+a[i]<=tot){
book[i]=1;
last=a[i];
if(cur+a[i]==tot){
dfs(already+1,0,1);
book[i]=0;
return;
}
else dfs(already,cur+a[i],i+1);
book[i]=0;
if(cur==0)return;
}
}
}
bool cmp(int x,int y){
return x>y;
}
int main(){
std::cin >>n;
for(int i=1;i<=n;i++){
std::cin >>a[i];
sum+=a[i];
}
sort(a+1,n+a+1,cmp);
for(int i=1;i<=sqrt(sum);i++){
if(sum%i==0){
if(i>=a[i])v.push_back(i);
if(sum/i>=a[i])v.push_back(sum/i);
v.push_back(sum/i);
}
}
sort(v.begin(),v.end());
for(int i=0;i<v.size();i++){
tot=v[i];
cnt=sum/tot;
dfs(1,0,1);
}
return 0;
}