#P1905. 打扑克(二)

打扑克(二)

今天是个好天气,小蚂蚁们聚在一块打扑克。

已知有n张桌子,每张桌子最多有一个牌局。 3个蚂蚁可以在一起玩斗地主,也可以4个蚂蚁在一起玩升级。

但是最开始的时候,蚂蚁们分别坐在n张旁边,由于一些桌子旁的蚂蚁数小于3,所以它们其中的某些蚂蚁需要移动到其他的桌子上和其他桌的蚂蚁一块打扑克。

现在给出这n张桌子旁边分别坐着的蚂蚁的数量Ai (0 <= Ai <= 4), 求出最小需要多少只蚂蚁进行移动,才能保证所有的蚂蚁都能够进行游戏。

如果不能,则输出-1

Input

有多组测试数据。
对于每组数据,第一行输入一个n(n < 10^6)。
第二行 有n个不大于4的数字Ai,代表第i张桌子旁边坐了i个蚂蚁。

Output

输出最小的需要移动的蚂蚁。
如果不能,则输出-1。

Sample Input

5
1 2 2 4 3
4
0 3 0 4

Sample Output

2
0

HINT

对于第一组,第1桌的蚂蚁可以到第2桌,
第4桌的1个蚂蚁可以到第3桌。所以一共有2个蚂蚁需要移动。

Source