#include<bits/stdc++.h>
using namespace std;
int a[70];
int l,r;
bool vis[70];
int n,cnt=0;
int zh[55];
bool solve(int x,int num,int sy,int dq){
if(sy==0)return solve(x,num+1,x,0);
if(num==r/x+1){
return 1;
}
vis[dq]=1;
int l=dq+1,r=n,mid;
while(l<r){
mid=(l+r)>>1;
if(a[mid]<=sy)r=mid;
else l=mid+1;
}
for(int i=l;i<=cnt;i++)
if(!vis[i])
if(solve(x,num,sy-a[i],i))
return 1;
else if(sy==x||sy==a[i])return 0;
else i=zh[a[i]];
vis[dq]=0;
return 0;
}
bool cmp(int a,int b){
return a>b;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
int tmp;
cin>>tmp;
if(a[i]>50)continue;
a[++cnt]=tmp;
r+=tmp;
}
sort(a+1,a+cnt+1,cmp);
for(int i=2;i<=cnt;i++)
if(a[i]!=a[i-1])
zh[a[i-1]]=i-1;
for(int i=a[1];i<=r/2;i++)
if(r%i==0)
if(solve(i,1,i,0)){
cout<<i;
return 0;
}
}