#include<bits/stdc++.h>
using namespace std;
int x, cnt, n, cur, sum = 0, len, l, r, mid, a[100005], Next[100005];
bool flag = false, vis[100005];
bool cmp(int x, int y){
return x > y;
}
bool check(int now, int last, int rest){
if(rest == 0){
if(now == len){
return true;
}
for(int i = 1; i <= cnt; i++){
if(vis[i] == false){
vis[i] = true;
flag = check(now + 1, i, cur - a[i]);
vis[i] = false;
return flag;
}
}
}
l = last + 1, r = cnt;
while(l < r){
mid = (l + r) >> 1;
if(a[mid] <= rest) r = mid;
else l = mid + 1;
}
for(int i = l; i <= cnt; i++){
if(vis[i] == true) continue;
vis[i] = true;
flag = check(now, i, rest - a[i]);
vis[i] = false;
if(flag == true) return flag;
if(rest == a[i] or rest == cur) return false;
if(Next[i] == cnt) return false;
}
}
int main()
{
cin >> n;
for(int i = 1; i <= n; i++){
cin >> x;
if(x <= 50) {
a[++cnt] = x;
sum += x;
}
}
sort(a + 1, a + cnt + 1, cmp);
Next[cnt] = cnt;
for(int i = cnt - 1; i > 0; i--){
if(a[i] == a[i + 1]) Next[i] = Next[i + 1];
else Next[i] = i;
}
cur = a[1];
for(;cur <= sum / 2; cur++){
if(sum % cur == 0){
len = sum / cur;
vis[1] = true;
if(check(1, 1, cur - a[1]) == true){
break;
}
vis[1] = false;
}
cur++;
}
cout << sum << "\n";
}
大红大紫加一个绿