N = int(input()) M = [int(input()) for _ in range(N)] inf = 10 ** 6 # dp[msk]: 集合mskを買ったときの最小金額 dp = [inf] * (1 << N) dp[0] = 0 for msk in range(1 << N): for i in range(N): if msk & 1 << i: continue lp = 0 for j in range(N): if msk & 1 << j: lp += M[j] dp[msk | 1 << i] = min(dp[msk | 1 << i], dp[msk] + max(M[i] - lp % 1000, 0)) print(dp[-1])