#include<bits/stdc++.h>
using namespace std;
int len,L,R,n,cnt,car[100],a[100];
bool f(int step,int k){
if(k>cnt)return 0;
if(step>n){
if(cnt==k){
for(int i=1;i<=k;i++){
if(car[i]!=len){
return 0;
}
}
return 1;
}
return 0;
}
for(int i=1;i<=k;i++){
if(car[i]+a[step]<=len){
car[i]+=a[step];
if(f(step+1,k)==1)return 1;
car[i]-=a[step];
}
}
car[k+1]=a[step];
if(f(step+1,k+1)==1)return 1;
car[k+1]=0;
return 0;
}
bool cmp(int x,int y){
return x>y;
}
int main(){
while(cin>>n){
memset(a,0,sizeof a);
memset(car,0,sizeof car);
len=L=R=cnt=0;
if(n==0)return 0;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
L=max(L,a[i]);
R=R+a[i];
}
sort(a+1,a+n+1,cmp);
for(len=L;len<=R/2;len++){
if(R%len==0){
cnt=R/len;
if(f(1,0)==1){
printf("%d",len);
}
}
}
printf("%d",R);
}
}