#include<bits/stdc++.h>
using namespace std;
int n,m,cnt,a[1005],f[1005],sum=0,len;
bool cmp(int l,int r){
return l>=r;
}
bool dfs(int x,int l,int last){
if(x>cnt){
return true;
}
if(l==len){
return dfs(x+1,0,1);
}
int flag=0;
for(int i=last;i<=m;i++){
if(!f[i]&&l+a[i]<=l&&flag!=a[i]){
f[i]=1;
if(dfs(x,l+a[i],i+1)){
return true;
}
flag=a[i];
f[i]=0;
if(l==0||l+a[i]==len){
return false;
}
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
int x;
cin>>x;
if(x<=50){
m++;
a[m]=x;
sum+=x;
}
}
sort(a+1,a+n+1,cmp);
for(len=a[1];len<=sum;len++){
if(sum%len!=0) continue;
cnt=sum/len;
memset(f,0,sizeof(f));
if(dfs(1,0,1)){
break;
}
}
cout<<len;
return 0;
}