#1451. Block

Block

题目描述

P\red P 自己开发了一款搭积木游戏,这个游戏和常规的搭积木没有什么区别,但是阿 P\red P 做了一些简化: 游戏屏幕只有 3\red 3 个格子宽。

积木只包含 7\red 7 种最基本的简单积木: img

所有积木可以旋转 0\red 090\red {90}180\red {180}270\red {270} 度。

每次掉下的积木都已经由阿 P\red P 事先设置好了。

不过阿 P\red P 现在遇到了一个问题,宽度设置好了格子为 3\red 3 ,那么高度应该设置多少才够 呢? 于是他决定把高度设置成能玩出的最小高度。

即在掉下积木确定的情况下,能堆砌到的最小高度。

但这个任务太难了,你来帮他吧。

输入格式

第一行仅包含一个数 N\red N ,表示掉下的总积木数。

接下来 N\red N 行,表示依次掉下的积木编号。

输出格式

一行表示堆砌的最小高度。

样例

输入样例

3
4
5
1

输出样例

5

提示

对于 20%\red{20\%} 的数据,满足 N15\red {N ≤ 15}

对于 100%\red{100\%} 的数据,满足 1N100\red {1 ≤ N ≤ 100}