N,A,B,C,*L = `dd`.split.map &:to_i
X = { a:A, b:B, c:C }
def dfs(h, l, c)
  if l.size == 0
    return 10**15 if h.values.count(0) > 0
    #p h
    return [:a,:b,:c].reduce(0){|a,s| a + (X[s] - h[s]).abs } + c
  end
  [:a,:b,:c,nil].map{ |s|
    if s
      g = h.clone
      o = g[s] > 0 ? 10 : 0
      g[s] += l[0]
      dfs(g, l[1..-1], c + o)
    else
      dfs(h, l[1..-1], c)
    end
  }.flatten.min
end


p dfs({ a:0, b:0, c:0 }, L, 0)
