N, A, B, C = map(int, input().split())
L = []
for _ in range(N):
    L.append(int(input()))


def test(n, a, b, c, na, nb, nc):
    """
    :param n: 使用している竹の本数
    :param a: 竹aの長さ
    :param b: 竹bの長さ
    :param c: 竹cの長さ
    :param na: 竹aに使用した本数
    :param nb: 竹bに使用した本数
    :param nc: 竹cに使用した本数
    :return: 消費MP
    """
    if n == N:
        # 最終MPの確定
        if min(na, nb, nc) == 0:
            return 10**9
        else:
            mp = 0
            mp += (na-1) * 10 if na else 0
            mp += (nb-1) * 10 if nb else 0
            mp += (nc-1) * 10 if nc else 0
            mp += abs(A-a) + abs(B-b) + abs(C-c)
            return mp
    else:
        mp1 = test(n+1, a, b, c, na, nb, nc)  # 使用しない
        mp2 = test(n+1, a+L[n], b, c, na+1, nb, nc)  # 竹aに適用
        mp3 = test(n+1, a, b+L[n], c, na, nb+1, nc)  # 竹bに適用
        mp4 = test(n+1, a, b, c+L[n], na, nb, nc+1)  # 竹cに適用
        return min(mp1, mp2, mp3, mp4)


print(test(0, 0, 0, 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 L = [] L [] for _ in range(N):
    L.append(int(input())) _ range(N) range N L.append(int(input())) L.append L append int(input()) int input() input def test(n, a, b, c, na, nb, nc):
    """
    :param n: 使用している竹の本数
    :param a: 竹aの長さ
    :param b: 竹bの長さ
    :param c: 竹cの長さ
    :param na: 竹aに使用した本数
    :param nb: 竹bに使用した本数
    :param nc: 竹cに使用した本数
    :return: 消費MP
    """
    if n == N:
        # 最終MPの確定
        if min(na, nb, nc) == 0:
            return 10**9
        else:
            mp = 0
            mp += (na-1) * 10 if na else 0
            mp += (nb-1) * 10 if nb else 0
            mp += (nc-1) * 10 if nc else 0
            mp += abs(A-a) + abs(B-b) + abs(C-c)
            return mp
    else:
        mp1 = test(n+1, a, b, c, na, nb, nc)  # 使用しない
        mp2 = test(n+1, a+L[n], b, c, na+1, nb, nc)  # 竹aに適用
        mp3 = test(n+1, a, b+L[n], c, na, nb+1, nc)  # 竹bに適用
        mp4 = test(n+1, a, b, c+L[n], na, nb, nc+1)  # 竹cに適用
        return min(mp1, mp2, mp3, mp4) test """
    :param n: 使用している竹の本数
    :param a: 竹aの長さ
    :param b: 竹bの長さ
    :param c: 竹cの長さ
    :param na: 竹aに使用した本数
    :param nb: 竹bに使用した本数
    :param nc: 竹cに使用した本数
    :return: 消費MP
    """ if n == N:
        # 最終MPの確定
        if min(na, nb, nc) == 0:
            return 10**9
        else:
            mp = 0
            mp += (na-1) * 10 if na else 0
            mp += (nb-1) * 10 if nb else 0
            mp += (nc-1) * 10 if nc else 0
            mp += abs(A-a) + abs(B-b) + abs(C-c)
            return mp
    else:
        mp1 = test(n+1, a, b, c, na, nb, nc)  # 使用しない
        mp2 = test(n+1, a+L[n], b, c, na+1, nb, nc)  # 竹aに適用
        mp3 = test(n+1, a, b+L[n], c, na, nb+1, nc)  # 竹bに適用
        mp4 = test(n+1, a, b, c+L[n], na, nb, nc+1)  # 竹cに適用
        return min(mp1, mp2, mp3, mp4) n == N n N if min(na, nb, nc) == 0:
            return 10**9
        else:
            mp = 0
            mp += (na-1) * 10 if na else 0
            mp += (nb-1) * 10 if nb else 0
            mp += (nc-1) * 10 if nc else 0
            mp += abs(A-a) + abs(B-b) + abs(C-c)
            return mp
     min(na, nb, nc) == 0 min(na, nb, nc) min na nb nc 0 return 10**9 10**9 10 9 mp = 0 mp 0 mp += (na-1) * 10 if na else 0 mp (na-1) * 10 if na else 0 na (na-1) * 10 na-1 na 1 10 0 mp += (nb-1) * 10 if nb else 0 mp (nb-1) * 10 if nb else 0 nb (nb-1) * 10 nb-1 nb 1 10 0 mp += (nc-1) * 10 if nc else 0 mp (nc-1) * 10 if nc else 0 nc (nc-1) * 10 nc-1 nc 1 10 0 mp += abs(A-a) + abs(B-b) + abs(C-c) mp 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 return mp mp mp1 = test(n+1, a, b, c, na, nb, nc) mp1 test(n+1, a, b, c, na, nb, nc) test n+1 n 1 a b c na nb nc mp2 = test(n+1, a+L[n], b, c, na+1, nb, nc) mp2 test(n+1, a+L[n], b, c, na+1, nb, nc) test n+1 n 1 a+L[n] a L[n] L n b c na+1 na 1 nb nc mp3 = test(n+1, a, b+L[n], c, na, nb+1, nc) mp3 test(n+1, a, b+L[n], c, na, nb+1, nc) test n+1 n 1 a b+L[n] b L[n] L n c na nb+1 nb 1 nc mp4 = test(n+1, a, b, c+L[n], na, nb, nc+1) mp4 test(n+1, a, b, c+L[n], na, nb, nc+1) test n+1 n 1 a b c+L[n] c L[n] L n na nb nc+1 nc 1 return min(mp1, mp2, mp3, mp4) min(mp1, mp2, mp3, mp4) min mp1 mp2 mp3 mp4 n n a a b b c c na na nb nb nc nc print(test(0, 0, 0, 0, 0, 0, 0)) print test(0, 0, 0, 0, 0, 0, 0) test 0 0 0 0 0 0 0 def test(n, a, b, c, na, nb, nc):
    """
    :param n: 使用している竹の本数
    :param a: 竹aの長さ
    :param b: 竹bの長さ
    :param c: 竹cの長さ
    :param na: 竹aに使用した本数
    :param nb: 竹bに使用した本数
    :param nc: 竹cに使用した本数
    :return: 消費MP
    """
    if n == N:
        # 最終MPの確定
        if min(na, nb, nc) == 0:
            return 10**9
        else:
            mp = 0
            mp += (na-1) * 10 if na else 0
            mp += (nb-1) * 10 if nb else 0
            mp += (nc-1) * 10 if nc else 0
            mp += abs(A-a) + abs(B-b) + abs(C-c)
            return mp
    else:
        mp1 = test(n+1, a, b, c, na, nb, nc)  # 使用しない
        mp2 = test(n+1, a+L[n], b, c, na+1, nb, nc)  # 竹aに適用
        mp3 = test(n+1, a, b+L[n], c, na, nb+1, nc)  # 竹bに適用
        mp4 = test(n+1, a, b, c+L[n], na, nb, nc+1)  # 竹cに適用
        return min(mp1, mp2, mp3, mp4) def test(n, a, b, c, na, nb, nc):
    """
    :param n: 使用している竹の本数
    :param a: 竹aの長さ
    :param b: 竹bの長さ
    :param c: 竹cの長さ
    :param na: 竹aに使用した本数
    :param nb: 竹bに使用した本数
    :param nc: 竹cに使用した本数
    :return: 消費MP
    """
    if n == N:
        # 最終MPの確定
        if min(na, nb, nc) == 0:
            return 10**9
        else:
            mp = 0
            mp += (na-1) * 10 if na else 0
            mp += (nb-1) * 10 if nb else 0
            mp += (nc-1) * 10 if nc else 0
            mp += abs(A-a) + abs(B-b) + abs(C-c)
            return mp
    else:
        mp1 = test(n+1, a, b, c, na, nb, nc)  # 使用しない
        mp2 = test(n+1, a+L[n], b, c, na+1, nb, nc)  # 竹aに適用
        mp3 = test(n+1, a, b+L[n], c, na, nb+1, nc)  # 竹bに適用
        mp4 = test(n+1, a, b, c+L[n], na, nb, nc+1)  # 竹cに適用
        return min(mp1, mp2, mp3, mp4) test A, B, C = map(int, input().split()) map(int, input().split()) A L = [] [] L N, A, B, C = map(int, input().split()) map(int, input().split()) N C = map(int, input().split()) map(int, input().split()) C B, C = map(int, input().split()) map(int, input().split()) B
N, A, B, C = map(int, input().split())
L = []
for _ in range(N):
    L.append(int(input()))


def test(n, a, b, c, na, nb, nc):
    """
    :param n: 使用している竹の本数
    :param a: 竹aの長さ
    :param b: 竹bの長さ
    :param c: 竹cの長さ
    :param na: 竹aに使用した本数
    :param nb: 竹bに使用した本数
    :param nc: 竹cに使用した本数
    :return: 消費MP
    """
    if n == N:
        # 最終MPの確定
        if min(na, nb, nc) == 0:
            return 10**9
        else:
            mp = 0
            mp += (na-1) * 10 if na else 0
            mp += (nb-1) * 10 if nb else 0
            mp += (nc-1) * 10 if nc else 0
            mp += abs(A-a) + abs(B-b) + abs(C-c)
            return mp
    else:
        mp1 = test(n+1, a, b, c, na, nb, nc)  # 使用しない
        mp2 = test(n+1, a+L[n], b, c, na+1, nb, nc)  # 竹aに適用
        mp3 = test(n+1, a, b+L[n], c, na, nb+1, nc)  # 竹bに適用
        mp4 = test(n+1, a, b, c+L[n], na, nb, nc+1)  # 竹cに適用
        return min(mp1, mp2, mp3, mp4)


print(test(0, 0, 0, 0, 0, 0, 0))
