Problem:
m 頂点の完全グラフがある．最初，完全グラフの辺には色は塗られていない．すぬけ君は，各 i(1 ≤ i ≤ n) について次の操作を行った: 完全グラフから ai 個の頂点を選び，選ばれた頂点同士を結ぶ辺すべてを色 i でぬる．複数個の色が塗られた辺はなかった．m として考えられる最小値を求めよ．

Constraints

1 ≤ n ≤ 5

2 ≤ ai ≤ 109

Input

n
a1
. . .
an

Output

m の最小値を一行に出力せよ．

Sample Input 1

2
3
3

Sample Output 1

5

たとえば，頂点1, 2, 3, 4, 5 からなるグラフがあった場合，次のように色を塗ることができる．

頂点1, 2, 3 を選びその間を結ぶ辺を色1 でぬる．

頂点1, 4, 5 を選びその間を結ぶ辺を色2 でぬる．

Sample Input 2

5
2
3
4
5
6

Sample Output 2

12

Solution in Ruby (judge verdict: Accepted)

n = gets.to_i
a = $<.map(&:to_i).sort.reverse

def f(a, select, max)
	return if max >= $best
	if a.empty?
		$best = max if max < $best
		return
	end
	
	k = a[0]
	[k, select.size].min.downto(1){|r|
		(1..max).to_a.combination(r){|b|
			if check(select, b)			
				f(a[1..-1], select + [b + (max+1..max+k-r).to_a], max+k-r)
			end
		}
	}
	f(a[1..-1], select + [(max+1..max+k).to_a], max+k)
end

def check(select, a)
	select.all?{|b| (b & a).size <= 1}
end

s = 0
(0..n-1).each{|i|
	if a[i] > n-1
		s += a[i]-n+1
		a[i] = n-1
	end
}

$best = Float::INFINITY
f(a, [], 0)
p s + $best