#include <bits/stdc++.h>
using namespace std;
int gcd(int a, int b) {
  if (a > b) swap(a, b);
  return a == 0 ? b : gcd(b % a, a);
}
int N, A, B, C;
inline int hoge(vector<int> l) {
  sort((l).begin(), (l).end());
  int ans = (1 << 30);
  for (int((i)) = ((int)0); ((i)) <= ((int)((int)l.size()) - 1); ((i))++) {
    for (int(j) = ((int)i + 1); (j) <= ((int)l.size()); (j)++) {
      for (int(k) = ((int)j + 1); (k) <= ((int)l.size()); (k)++) {
        int a = abs(l[i] - C) + abs(l[j] - B) + abs(l[k] - A);
        if (ans > a) ans = a;
      }
    }
  }
  return ans;
}
int dps(vector<int> l) {
  int ans = hoge(l);
  int minans = ans;
  if (l.size() == 3) return ans;
  for (int((i)) = ((int)0); ((i)) <= ((int)((int)l.size()) - 1); ((i))++) {
    for (int(j) = ((int)i + 1); (j) <= ((int)l.size()); (j)++) {
      auto cur = l;
      cur.push_back(l[i] + l[j]);
      cur.erase(cur.begin() + i);
      cur.erase(cur.begin() + j - 1);
      if (hoge(cur) + 10 > ans) continue;
      int a = dps(cur) + 10;
      minans = a < minans ? a : minans;
    }
  }
  return minans;
}
int main() {
  cin >> N >> A >> B >> C;
  vector<int> l(N);
  for (int((i)) = ((int)0); ((i)) <= ((int)((int)N) - 1); ((i))++) cin >> l[i];
  cout << dps(l) << endl;
  return 0;
}
