N = int(input()) M = 500_001 V = list(map(int, input().split())) dp = [[False]*M for _ in range(3)] dp[0][0] = dp[1][0] = dp[1][V[0]] = True ans = V[0] for i in range(2, N+1): v = V[i-1] x = i % 3 for j in range(M): if v <= j: dp[x][j] = dp[(x-2) % 3][j-v] or dp[(x-1) % 3][j] else: dp[x][j] = dp[(x-1) % 3][j] if dp[x][j]: ans = max(ans, j) print(ans)