n,A,B,C = map(int, input().split())
l = []
for i in range(n):
  l.append(int(input()))

def dfs(cur, a, b, c):
  #再帰の枝が末尾まで行った時の処理
  if cur == n:
    #末尾まで行ったらその時点で全ての竹に伸縮魔法使った時のmpを算出（もともと長さが0の場合を除く）
    return abs(A-a)+abs(B-b)+abs(C-c)-30　if min(a,b,c) > 0 else 10**9
  
  #次の竹(cur番目の竹)をどの竹にも使わない場合
  ret0 = dfs(cur+1,a,b,c)
  #次の竹(cur番目の竹)をaの竹に使う場合
  ret1 = dfs(cur+1,a+l[cur],b,c) +10
  
  ret2 = dfs(cur+1,a,l[cur]+b,c) +10
  
  ret3 = dfs(cur+1,a,b,c+l[cur]) +10
  
  return min(ret0, ret1, ret2, ret3)

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