#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,num;
int arr[70],maxn,minn=1e9;
bool vis[70],xx;
bool f(int x){
if(x==0){
num++;
return true;
}
else{
for(int i=1;i<=n;i++){
if(arr[i]<=x&&!vis[i]){
vis[i]=true;
if(f(x-arr[i])){
return true;
}
vis[i]=false;
}
}
return false;
}
}
bool cmp(int a,int b){
return a>b;
}
int main(){
cin>>n;
for(int i=1;i<=n;++i){
cin>>arr[i];
arr[0]+=arr[i];
maxn=max(arr[i],maxn);
minn=min(arr[i],minn);
}
sort(arr+1,arr+1+n,cmp);
for(int i=maxn+minn;i<=arr[0]/2;i++){
if(arr[0]%i)continue;
while(f(i)){
}
if(num==arr[0]/i){
cout<<i;
return 0;
}
num=0;
memset(vis,false,sizeof(vis));
}
}