#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

int n,i,sum;
int a[70];
bool used[70];

int dfs(int unused,int left){
    if(unused==0&&left==0)
        return 1;
    if(left==0){
        left=i;
    }
    for(int j=0;j<n;j++){
        if(used[j]||a[j]>left)
            continue;
        used[j]=1;
        if(dfs(unused-1,left-a[j]))
            return 1;
        used[j]=0;
        if(a[j]==left||left==i)
            break;
    }
    return 0;
}

bool cmp(int x,int y){
    return x>y;
}

int main(){
    while(1){
        sum=0;
        memset(used,0,sizeof(used));
        scanf("%d",&n);
        if(0==n)
            break;
        for(i=0;i<n;i++){
            scanf("%d",&a[i]);
            sum+=a[i];
        }
        sort(a,a+n,cmp);
        for(i=a[0];i<sum;i++){
            if(sum%i!=0)
                continue;
            if(dfs(n,0))
                break;
        }
        printf("%d\n",i);
    }
    return 0;
}