#include<bits/stdc++.h>
using namespace std;
int a[70], summ;
int n, sum=0, maxn=0, minn=60;
vector<int>v;
int dfs(int x, int l, int p)
{
if(summ==0&&p==0)return 1;
for(int i=min(l-p, maxn);i>=minn;i--){
if(a[i]>0){
if(p+i<l){
a[i]--;
summ--;
if(dfs(x+1, l, p+i))return 1;
summ++;
a[i]++;
}
else if(p+i==l||p==0){
a[i]--;
summ--;
if(dfs(x+1, l, 0))return 1;
a[i]++;
summ++;
break;
}
}
}
return 0;
}
int main()
{
while(cin>>n){
if(n==0)break;
for(int i=1;i<=n;i++){
int t;
cin>>t;
if(t>50)continue;
a[t]++;
maxn=max(maxn, t);
minn=min(minn, t);
sum+=t;
}
for(int i=maxn;i<=sum;i++)
if(sum%i==0)v.push_back(i);
for(int i=0;i<v.size();i++){
summ=n;
if(dfs(0, v[i], 0)){cout<<v[i]<<endl;break;}
}
}
}
~~~~~~~~