#include<iostream> #include<cstring> #include<algorithm> using namespace std; int a[65],vis[65],n; int dfs(int len,int li,int s,int num) { int sam=-1,i; if(num==n) return 1; for(i=s;i>=0;i--) { if(vis[i] || a[i]==sam) continue; vis[i]=1; if(len+a[i]<li) { if(dfs(len+a[i],li,i,num+1)) return 1; else sam=a[i]; } else if(len+a[i]==li) { if(dfs(0,li,n-1,num+1)) return 1; else sam=a[i]; } vis[i]=0; if(len==0) break; } return 0; } int main() { int i,sum,ok,min; while(cin>>n && n) { sum=0; for(i=0;i<n;i++) { cin>>a[i]; sum+=a[i]; vis[i]=0; } sort(a,a+n); min=a[n-1];ok=0; for(i=min;i<=sum-i;i++) if(sum%i==0) { if(dfs(0,i,n-1,0)) { cout<<i<<endl;ok=1;break; } } if(!ok) cout<<sum<<endl; } return 0; }