#from statistics import median
#import collections
#aa = collections.Counter(a) # list to list
#from itertools import combinations # (string,3) 3回
#
#
# pythonで無理なときは、pypyでやると正解するかも！！
#
#

mod = 10**9 + 7

def readInts():
  return list(map(int,input().split()))
def main():
    n,A,B,C = readInts()
    L = [] * n
    for i in range(n):
        l = int(input())
        L.append(l)

    def rec(i,a,b,c):
        if i == n:
            if not a or not b or not c:
                return float('inf')
            return abs(a-A) + abs(b-B) + abs(c - C)
            # 一番最後まで行ったら、その差が延長魔法や短縮魔法を使うMPであるからこうする

        # 今ある竹を採用しない場合
        res = rec(i+1, a, b, c)

        # A,B,Cを使う場合 (どこにどれを足す？)
        # 1本目はコストなし、2本目からコスト10
        res = min(res,rec(i+1,a+L[i],b,c) + (10 if a >= 1 else 0)) # aにL[i]を足す
        res = min(res,rec(i+1,a,b+L[i],c) + (10 if b >= 1 else 0)) # bにL[i]を足す
        res = min(res,rec(i+1,a,b,c+L[i]) + (10 if c >= 1 else 0)) # cにL[i]を足す
        return res

    print(rec(0,0,0,0))


if __name__ == '__main__':
  main() mod = 10**9 + 7 mod 10**9 + 7 10**9 10 9 7 def readInts():
  return list(map(int,input().split())) readInts return list(map(int,input().split())) list(map(int,input().split())) list map(int,input().split()) map int input().split() ().split () input split def main():
    n,A,B,C = readInts()
    L = [] * n
    for i in range(n):
        l = int(input())
        L.append(l)

    def rec(i,a,b,c):
        if i == n:
            if not a or not b or not c:
                return float('inf')
            return abs(a-A) + abs(b-B) + abs(c - C)
            # 一番最後まで行ったら、その差が延長魔法や短縮魔法を使うMPであるからこうする

        # 今ある竹を採用しない場合
        res = rec(i+1, a, b, c)

        # A,B,Cを使う場合 (どこにどれを足す？)
        # 1本目はコストなし、2本目からコスト10
        res = min(res,rec(i+1,a+L[i],b,c) + (10 if a >= 1 else 0)) # aにL[i]を足す
        res = min(res,rec(i+1,a,b+L[i],c) + (10 if b >= 1 else 0)) # bにL[i]を足す
        res = min(res,rec(i+1,a,b,c+L[i]) + (10 if c >= 1 else 0)) # cにL[i]を足す
        return res

    print(rec(0,0,0,0)) main n,A,B,C = readInts() n readInts() readInts A B C L = [] * n L [] * n [] n for i in range(n):
        l = int(input())
        L.append(l)

     i range(n) range n l = int(input()) l int(input()) int input() input L.append(l) L.append L append l def rec(i,a,b,c):
        if i == n:
            if not a or not b or not c:
                return float('inf')
            return abs(a-A) + abs(b-B) + abs(c - C)
            # 一番最後まで行ったら、その差が延長魔法や短縮魔法を使うMPであるからこうする

        # 今ある竹を採用しない場合
        res = rec(i+1, a, b, c)

        # A,B,Cを使う場合 (どこにどれを足す？)
        # 1本目はコストなし、2本目からコスト10
        res = min(res,rec(i+1,a+L[i],b,c) + (10 if a >= 1 else 0)) # aにL[i]を足す
        res = min(res,rec(i+1,a,b+L[i],c) + (10 if b >= 1 else 0)) # bにL[i]を足す
        res = min(res,rec(i+1,a,b,c+L[i]) + (10 if c >= 1 else 0)) # cにL[i]を足す
        return res

     rec if i == n:
            if not a or not b or not c:
                return float('inf')
            return abs(a-A) + abs(b-B) + abs(c - C)
            # 一番最後まで行ったら、その差が延長魔法や短縮魔法を使うMPであるからこうする

        # 今ある竹を採用しない場合
         i == n i n if not a or not b or not c:
                return float('inf')
             not a or not b or not c not a or not b not a a not b b not c c return float('inf') float('inf') float 'inf' return abs(a-A) + abs(b-B) + abs(c - C) 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 res = rec(i+1, a, b, c) res rec(i+1, a, b, c) rec i+1 i 1 a b c res = min(res,rec(i+1,a+L[i],b,c) + (10 if a >= 1 else 0)) res min(res,rec(i+1,a+L[i],b,c) + (10 if a >= 1 else 0)) min res rec(i+1,a+L[i],b,c) + (10 if a >= 1 else 0) rec(i+1,a+L[i],b,c) rec i+1 i 1 a+L[i] a L[i] L i b c 10 if a >= 1 else 0 a >= 1 a 1 10 0 res = min(res,rec(i+1,a,b+L[i],c) + (10 if b >= 1 else 0)) res min(res,rec(i+1,a,b+L[i],c) + (10 if b >= 1 else 0)) min res rec(i+1,a,b+L[i],c) + (10 if b >= 1 else 0) rec(i+1,a,b+L[i],c) rec i+1 i 1 a b+L[i] b L[i] L i c 10 if b >= 1 else 0 b >= 1 b 1 10 0 res = min(res,rec(i+1,a,b,c+L[i]) + (10 if c >= 1 else 0)) res min(res,rec(i+1,a,b,c+L[i]) + (10 if c >= 1 else 0)) min res rec(i+1,a,b,c+L[i]) + (10 if c >= 1 else 0) rec(i+1,a,b,c+L[i]) rec i+1 i 1 a b c+L[i] c L[i] L i 10 if c >= 1 else 0 c >= 1 c 1 10 0 return res res i i a a b b c c print(rec(0,0,0,0)) print rec(0,0,0,0) rec 0 0 0 0 if __name__ == '__main__':
  main() __name__ == '__main__' __name__ '__main__' main() main def main():
    n,A,B,C = readInts()
    L = [] * n
    for i in range(n):
        l = int(input())
        L.append(l)

    def rec(i,a,b,c):
        if i == n:
            if not a or not b or not c:
                return float('inf')
            return abs(a-A) + abs(b-B) + abs(c - C)
            # 一番最後まで行ったら、その差が延長魔法や短縮魔法を使うMPであるからこうする

        # 今ある竹を採用しない場合
        res = rec(i+1, a, b, c)

        # A,B,Cを使う場合 (どこにどれを足す？)
        # 1本目はコストなし、2本目からコスト10
        res = min(res,rec(i+1,a+L[i],b,c) + (10 if a >= 1 else 0)) # aにL[i]を足す
        res = min(res,rec(i+1,a,b+L[i],c) + (10 if b >= 1 else 0)) # bにL[i]を足す
        res = min(res,rec(i+1,a,b,c+L[i]) + (10 if c >= 1 else 0)) # cにL[i]を足す
        return res

    print(rec(0,0,0,0)) def main():
    n,A,B,C = readInts()
    L = [] * n
    for i in range(n):
        l = int(input())
        L.append(l)

    def rec(i,a,b,c):
        if i == n:
            if not a or not b or not c:
                return float('inf')
            return abs(a-A) + abs(b-B) + abs(c - C)
            # 一番最後まで行ったら、その差が延長魔法や短縮魔法を使うMPであるからこうする

        # 今ある竹を採用しない場合
        res = rec(i+1, a, b, c)

        # A,B,Cを使う場合 (どこにどれを足す？)
        # 1本目はコストなし、2本目からコスト10
        res = min(res,rec(i+1,a+L[i],b,c) + (10 if a >= 1 else 0)) # aにL[i]を足す
        res = min(res,rec(i+1,a,b+L[i],c) + (10 if b >= 1 else 0)) # bにL[i]を足す
        res = min(res,rec(i+1,a,b,c+L[i]) + (10 if c >= 1 else 0)) # cにL[i]を足す
        return res

    print(rec(0,0,0,0)) main mod = 10**9 + 7 10**9 + 7 mod def readInts():
  return list(map(int,input().split())) def readInts():
  return list(map(int,input().split())) readInts
#from statistics import median
#import collections
#aa = collections.Counter(a) # list to list
#from itertools import combinations # (string,3) 3回
#
#
# pythonで無理なときは、pypyでやると正解するかも！！
#
#

mod = 10**9 + 7

def readInts():
  return list(map(int,input().split()))
def main():
    n,A,B,C = readInts()
    L = [] * n
    for i in range(n):
        l = int(input())
        L.append(l)

    def rec(i,a,b,c):
        if i == n:
            if not a or not b or not c:
                return float('inf')
            return abs(a-A) + abs(b-B) + abs(c - C)
            # 一番最後まで行ったら、その差が延長魔法や短縮魔法を使うMPであるからこうする

        # 今ある竹を採用しない場合
        res = rec(i+1, a, b, c)

        # A,B,Cを使う場合 (どこにどれを足す？)
        # 1本目はコストなし、2本目からコスト10
        res = min(res,rec(i+1,a+L[i],b,c) + (10 if a >= 1 else 0)) # aにL[i]を足す
        res = min(res,rec(i+1,a,b+L[i],c) + (10 if b >= 1 else 0)) # bにL[i]を足す
        res = min(res,rec(i+1,a,b,c+L[i]) + (10 if c >= 1 else 0)) # cにL[i]を足す
        return res

    print(rec(0,0,0,0))


if __name__ == '__main__':
  main()
