N, A, B, C = map(int, input().split())
l = [int(input()) for i in range(N)]
INF = 10**9

def dfs(cur, a, b, c):
  if cur == N:
    return abs(a-A) + abs(b-B) + abs(c-C) - 30 if min(a,b,c)>0 else INF

  ans = INF
  ans = min(ans, dfs(cur+1, a, b, c))
  ans = min(ans, dfs(cur+1, a + l[cur], b, c)+10)
  ans = min(ans, dfs(cur+1, a, b+l[cur], c)+10)
  ans = min(ans, dfs(cur+1, a, b, c+l[cur])+10)
  return ans

print(dfs(0, 0, 0, 0)) N, A, B, C = map(int, input().split()) N map(int, input().split()) map int input().split() ().split () input split A B C int(input()) for i in range(N) for i in range(N) i range(N) range N for i in range(N) int(input()) int input() input l = [int(input()) for i in range(N)] l [int(input()) for i in range(N)] INF = 10**9 INF 10**9 10 9 def dfs(cur, a, b, c):
  if cur == N:
    return abs(a-A) + abs(b-B) + abs(c-C) - 30 if min(a,b,c)>0 else INF

  ans = INF
  ans = min(ans, dfs(cur+1, a, b, c))
  ans = min(ans, dfs(cur+1, a + l[cur], b, c)+10)
  ans = min(ans, dfs(cur+1, a, b+l[cur], c)+10)
  ans = min(ans, dfs(cur+1, a, b, c+l[cur])+10)
  return ans dfs if cur == N:
    return abs(a-A) + abs(b-B) + abs(c-C) - 30 if min(a,b,c)>0 else INF

   cur == N cur N return abs(a-A) + abs(b-B) + abs(c-C) - 30 if min(a,b,c)>0 else INF abs(a-A) + abs(b-B) + abs(c-C) - 30 if min(a,b,c)>0 else INF min(a,b,c)>0 min(a,b,c) min a b c 0 abs(a-A) + abs(b-B) + abs(c-C) - 30 abs(a-A) + abs(b-B) + abs(c-C) abs(a-A) + abs(b-B) abs(a-A) abs a-A a A abs(b-B) abs b-B b B abs(c-C) abs c-C c C 30 INF ans = INF ans INF ans = min(ans, dfs(cur+1, a, b, c)) ans min(ans, dfs(cur+1, a, b, c)) min ans dfs(cur+1, a, b, c) dfs cur+1 cur 1 a b c ans = min(ans, dfs(cur+1, a + l[cur], b, c)+10) ans min(ans, dfs(cur+1, a + l[cur], b, c)+10) min ans dfs(cur+1, a + l[cur], b, c)+10 dfs(cur+1, a + l[cur], b, c) dfs cur+1 cur 1 a + l[cur] a l[cur] l cur b c 10 ans = min(ans, dfs(cur+1, a, b+l[cur], c)+10) ans min(ans, dfs(cur+1, a, b+l[cur], c)+10) min ans dfs(cur+1, a, b+l[cur], c)+10 dfs(cur+1, a, b+l[cur], c) dfs cur+1 cur 1 a b+l[cur] b l[cur] l cur c 10 ans = min(ans, dfs(cur+1, a, b, c+l[cur])+10) ans min(ans, dfs(cur+1, a, b, c+l[cur])+10) min ans dfs(cur+1, a, b, c+l[cur])+10 dfs(cur+1, a, b, c+l[cur]) dfs cur+1 cur 1 a b c+l[cur] c l[cur] l cur 10 return ans ans cur cur a a b b c c print(dfs(0, 0, 0, 0)) print dfs(0, 0, 0, 0) dfs 0 0 0 0 N, A, B, C = map(int, input().split()) map(int, input().split()) N def dfs(cur, a, b, c):
  if cur == N:
    return abs(a-A) + abs(b-B) + abs(c-C) - 30 if min(a,b,c)>0 else INF

  ans = INF
  ans = min(ans, dfs(cur+1, a, b, c))
  ans = min(ans, dfs(cur+1, a + l[cur], b, c)+10)
  ans = min(ans, dfs(cur+1, a, b+l[cur], c)+10)
  ans = min(ans, dfs(cur+1, a, b, c+l[cur])+10)
  return ans def dfs(cur, a, b, c):
  if cur == N:
    return abs(a-A) + abs(b-B) + abs(c-C) - 30 if min(a,b,c)>0 else INF

  ans = INF
  ans = min(ans, dfs(cur+1, a, b, c))
  ans = min(ans, dfs(cur+1, a + l[cur], b, c)+10)
  ans = min(ans, dfs(cur+1, a, b+l[cur], c)+10)
  ans = min(ans, dfs(cur+1, a, b, c+l[cur])+10)
  return ans dfs B, C = map(int, input().split()) map(int, input().split()) B A, B, C = map(int, input().split()) map(int, input().split()) A l = [int(input()) for i in range(N)] [int(input()) for i in range(N)] l C = map(int, input().split()) map(int, input().split()) C INF = 10**9 10**9 INF
N, A, B, C = map(int, input().split())
l = [int(input()) for i in range(N)]
INF = 10**9

def dfs(cur, a, b, c):
  if cur == N:
    return abs(a-A) + abs(b-B) + abs(c-C) - 30 if min(a,b,c)>0 else INF

  ans = INF
  ans = min(ans, dfs(cur+1, a, b, c))
  ans = min(ans, dfs(cur+1, a + l[cur], b, c)+10)
  ans = min(ans, dfs(cur+1, a, b+l[cur], c)+10)
  ans = min(ans, dfs(cur+1, a, b, c+l[cur])+10)
  return ans

print(dfs(0, 0, 0, 0))
