#include<bits/stdc++.h>
using namespace std;
int cnt=0,ans=0,sum=0,y,z,a[100],k[100];
int dfs(int aa,int bb,int cc)
{
int num=0;
if(aa>z)
{
return 1;
}
if(bb==y)
{
return dfs(aa+1,0,1);
}
for(int i=cc;i<=cnt;i++)
{
if(!k[i]&&bb+a[i]<=y&&num!=a[i])
{
k[i]=1;
if(dfs(aa,bb+a[i],i+1))
{
return 1;
}
num=a[i];
k[i]=0;
if(bb==0||bb+a[i]==y)
{
return 0;
}
}
}
return 0;
}
int main()
{
int n;
while(cin>>n&&n!=0)
{
memset(a,0,sizeof(a));
memset(k,0,sizeof(k));
cnt=0,ans=0,sum=0,y,z;
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
if(x>50) continue;
a[++cnt]=x;
ans=max(ans,x);
sum+=x;
}
sort(a+1,a+cnt+1);
reverse(a+1,a+cnt+1);
for(y=ans;y<=sum;y++)
{
if(sum%y)
{
continue;
}
z=sum/y;
memset(k,0,sizeof(k));
if(dfs(1,0,1))
{
break;
}
}
cout<<y<<endl;
}
return 0;
}