N = int(input()) A = list(map(int, input().split())) INF = 1<<60 MAX = 5000 if N <= 20: MAX *= N elif N <= 200: MAX *= 10 else: MAX *= 2 dp = [INF]*(MAX*2+1) dp[MAX] = 0 ans = INF for i in range(N): ndp = [INF]*(MAX*2+1) for j in range(MAX*2+1): if dp[j] == INF: continue ndp[j] = min(ndp[j], dp[j]) if j+A[i] <= MAX*2: if j+A[i] == MAX: ans = min(ans, dp[j]+A[i]) ndp[j+A[i]] = min(ndp[j+A[i]], dp[j]+A[i]) if A[i] <= j: if j-A[i] == MAX: ans = min(ans, dp[j]) ndp[j-A[i]] = min(ndp[j-A[i]], dp[j]) dp = ndp if ans < (sum(A)+1)//2: print(sum(A)-ans*2) else: print(-1)