#include <bits/stdc++.h>
using namespace std;
int m[65];
int book[65];
int n;
int maxm=0,summ=0;
bool cmp(int x,int y)
{
return x>y;
}
bool dfs(int now,int f,int cnt,int sum)
{
if(sum==n&&cnt==f) return 1;
if(cnt==f)
{
cnt=0;
now=1;
}
for(int i=now;i<=n;i++)
{
if(!book[i] && cnt+m[i]<=f)
{
book[i]=1;
if(dfs(i,f,cnt+m[i],sum+1))
return 1;
book[i]=0;
if(cnt==0) break;
while(m[i]==m[i+1]) i++;
}
}
return 0;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&m[i]);
maxm=max(maxm,m[i]);
summ+=m[i];
}
sort(m+1,m+n+1,cmp);
for(int i=maxm;i<=summ;i++)
{
if(summ%i==0)
{
if(dfs(1,i,0,0))
{
cout << i;
return 0;
}
}
memset(book,0,sizeof book);
}
return 0;
}