import itertools

N,A,B,C = map(int,input().split())
Comb = itertools.product([0,1,2,3],repeat=N)

L = []
for i in range(N):
  l = int(input())
  L.append(l)
  
# 各竹について  
# 0 : 使用しない
# 1 : 竹Aの材料にする  
# 2 : 竹Bの材料にする 
# 3 : 竹Cの材料にする
# 竹A,B,Cの作成法 :
# とりあえず全部合成 → 目的の長さに合わせる

ans = float('inf')
for X in Comb:
  tmp = 0
  m_A,m_B,m_C = [],[],[]
  for i in range(N):
    if(X[i] == 1): m_A.append(L[i])
    elif(X[i] == 2): m_B.append(L[i])
    elif(X[i] == 3): m_C.append(L[i])
  # 空の竹リストがないなら    
  if(len(m_A)*len(m_B)*len(m_C) != 0):      
    for take_list,take_len in zip([m_A,m_B,m_C],[A,B,C]):
      tmp += (len(take_list)-1)*10 # 合成
      tmp += (abs(take_len-sum(take_list)))*1 # 延長or短縮
    ans = min(ans,tmp)
  
print(ans)   import itertools itertools N,A,B,C = map(int,input().split()) N map(int,input().split()) map int input().split() ().split () input split A B C Comb = itertools.product([0,1,2,3],repeat=N) Comb itertools.product([0,1,2,3],repeat=N) itertools.product itertools product [0,1,2,3] 0 1 2 3 repeat=N repeat N L = [] L [] for i in range(N):
  l = int(input())
  L.append(l)
  
# 各竹について  
# 0 : 使用しない
# 1 : 竹Aの材料にする  
# 2 : 竹Bの材料にする 
# 3 : 竹Cの材料にする
# 竹A,B,Cの作成法 :
# とりあえず全部合成 → 目的の長さに合わせる i range(N) range N l = int(input()) l int(input()) int input() input L.append(l) L.append L append l ans = float('inf') ans float('inf') float 'inf' for X in Comb:
  tmp = 0
  m_A,m_B,m_C = [],[],[]
  for i in range(N):
    if(X[i] == 1): m_A.append(L[i])
    elif(X[i] == 2): m_B.append(L[i])
    elif(X[i] == 3): m_C.append(L[i])
  # 空の竹リストがないなら    
  if(len(m_A)*len(m_B)*len(m_C) != 0):      
    for take_list,take_len in zip([m_A,m_B,m_C],[A,B,C]):
      tmp += (len(take_list)-1)*10 # 合成
      tmp += (abs(take_len-sum(take_list)))*1 # 延長or短縮
    ans = min(ans,tmp)
   X Comb tmp = 0 tmp 0 m_A,m_B,m_C = [],[],[] m_A [] m_B [] m_C [] for i in range(N):
    if(X[i] == 1): m_A.append(L[i])
    elif(X[i] == 2): m_B.append(L[i])
    elif(X[i] == 3): m_C.append(L[i])
  # 空の竹リストがないなら    
   i range(N) range N if(X[i] == 1): m_A.append(L[i])
    elif(X[i] == 2): m_B.append(L[i])
    elif(X[i] == 3): m_C.append(L[i])
  # 空の竹リストがないなら    
   X[i] == 1 X[i] X i 1 elif(X[i] == 2): m_B.append(L[i])
     X[i] == 2 X[i] X i 2 elif(X[i] == 3): m_C.append(L[i])
  # 空の竹リストがないなら    
   X[i] == 3 X[i] X i 3 if(len(m_A)*len(m_B)*len(m_C) != 0):      
    for take_list,take_len in zip([m_A,m_B,m_C],[A,B,C]):
      tmp += (len(take_list)-1)*10 # 合成
      tmp += (abs(take_len-sum(take_list)))*1 # 延長or短縮
    ans = min(ans,tmp)
   len(m_A)*len(m_B)*len(m_C) != 0 len(m_A)*len(m_B)*len(m_C) len(m_A)*len(m_B) len(m_A) len m_A len(m_B) len m_B len(m_C) len m_C 0 for take_list,take_len in zip([m_A,m_B,m_C],[A,B,C]):
      tmp += (len(take_list)-1)*10 # 合成
      tmp += (abs(take_len-sum(take_list)))*1 # 延長or短縮
     take_list take_len zip([m_A,m_B,m_C],[A,B,C]) zip [m_A,m_B,m_C] m_A m_B m_C [A,B,C] A B C tmp += (len(take_list)-1)*10 tmp (len(take_list)-1)*10 len(take_list)-1 len(take_list) len take_list 1 10 tmp += (abs(take_len-sum(take_list)))*1 tmp (abs(take_len-sum(take_list)))*1 abs(take_len-sum(take_list)) abs take_len-sum(take_list) take_len sum(take_list) sum take_list 1 ans = min(ans,tmp) ans min(ans,tmp) min ans tmp print(ans) print ans m_C = [],[],[] [] m_C l = int(input()) int(input()) l B,C = map(int,input().split()) map(int,input().split()) B ans = min(ans,tmp) min(ans,tmp) ans m_A,m_B,m_C = [],[],[] [] m_A A,B,C = map(int,input().split()) map(int,input().split()) A tmp += (len(take_list)-1)*10 (len(take_list)-1)*10 tmp C = map(int,input().split()) map(int,input().split()) C tmp += (abs(take_len-sum(take_list)))*1 (abs(take_len-sum(take_list)))*1 tmp Comb = itertools.product([0,1,2,3],repeat=N) itertools.product([0,1,2,3],repeat=N) Comb L = [] [] L tmp = 0 0 tmp N,A,B,C = map(int,input().split()) map(int,input().split()) N ans = float('inf') float('inf') ans m_B,m_C = [],[],[] [] m_B
import itertools

N,A,B,C = map(int,input().split())
Comb = itertools.product([0,1,2,3],repeat=N)

L = []
for i in range(N):
  l = int(input())
  L.append(l)
  
# 各竹について  
# 0 : 使用しない
# 1 : 竹Aの材料にする  
# 2 : 竹Bの材料にする 
# 3 : 竹Cの材料にする
# 竹A,B,Cの作成法 :
# とりあえず全部合成 → 目的の長さに合わせる

ans = float('inf')
for X in Comb:
  tmp = 0
  m_A,m_B,m_C = [],[],[]
  for i in range(N):
    if(X[i] == 1): m_A.append(L[i])
    elif(X[i] == 2): m_B.append(L[i])
    elif(X[i] == 3): m_C.append(L[i])
  # 空の竹リストがないなら    
  if(len(m_A)*len(m_B)*len(m_C) != 0):      
    for take_list,take_len in zip([m_A,m_B,m_C],[A,B,C]):
      tmp += (len(take_list)-1)*10 # 合成
      tmp += (abs(take_len-sum(take_list)))*1 # 延長or短縮
    ans = min(ans,tmp)
  
print(ans)  