#include <bits/stdc++.h>
using namespace std;
const int N = 65 + 5;
int tn, n, a[N], sum = 0, cx, b[N], flag = 0;
bool cmp(int x, int y) {
return x > y;
}
bool dfs(int g, int c, int l) { //g¸ùÊý, c³¤¶È, lÉÏÒ»´ÎµÄ×ø±ê
if (g == 0 && c == cx) return true;
for (int i = l + 1; i <= n; ++i) {
int t = INT_MAX;
if (b[i] == 1 || a[i] == t) continue;
if (a[i] < c) {
b[i] = 1;
if (dfs(g, c - a[i], i)) {
b[i] = 0;
return true;
}
b[i] = 0;
t = a[i];
if (c == cx || c == a[i]) {
return false;
}
} else if (a[i] == c) {
b[i] = 1;
if (dfs(g - 1, cx, 0)) {
b[i] = 0;
return true;
}
b[i] = 0;
t = a[i];
if (c == cx || c == a[i]) {
return false;
}
}
}
return false;
}
int main() {
scanf("%d", &tn);
for (int i = 1; i <= tn; ++i) {
int t;
scanf("%d", &t);
if (t <= 50) {
a[++n] = t;
sum += t;
}
}
sort(a + 1, a + n + 1, cmp);
for (int i = a[1]; i <= sum; ++i) {
flag = 0;
if (sum % i == 0) {
cx = i;
if (dfs(sum / i, i, 0)) {
printf("%d\n", i);
break;
}
}
}
return 0;
}