Antonella 有 $N$ 个彩色球,她想用它们搭建一个稳定的球堆。为了使球堆稳定,每个球必须要么落在地面上,要么恰好放置在另外两个球的上方。此外,落在地面上的球必须紧密排列,这意味着它们之间不能有空隙。下图展示了三种球的排列方式;左边的是一个稳定的球堆,而另外两个是失败的尝试。
Antonella 想要通过一个渐进的过程来搭建她的稳定球堆。首先,她会选择一个球并将其放在地面上,形成一个由单个球组成的稳定球堆。然后,她会逐个将其他 $N - 1$ 个球加入到球堆中,并保证每一步球堆都保持稳定。如果存在多个可以放置新球的位置,她会选择(相对于地面)最高的位置。如果仍然存在多个选项,她可以选择其中任意一个。
如果对于稳定球堆中某一组球中的任意两个球 $s$ 和 $t$,都存在一个球的序列 $s = b_0, b_1, \dots, b_k = t$,使得对于 $i = 1, 2, \dots, k$,$b_{i-1}$ 与 $b_i$ 相接触,则称这组球是连通的。同色块(cluster)是指由相同颜色的球组成的连通集合。同色块的大小是指其中包含的球的数量。上图中的稳定球堆有两个大小分别为 3 和 1 的红色同色块,一个大小为 3 的绿色同色块,以及一个大小为 6 的蓝色同色块。
给定 Antonella 使用这些球的颜色顺序,你必须求出在她所有可能搭建出的稳定球堆中,所有同色块的最大大小。
输入格式
第一行包含一个整数 $N$($1 \le N \le 150$),表示球的数量。
第二行包含 $N$ 个整数 $K_1, K_2, \dots, K_N$(对于 $i = 1, 2, \dots, N$,满足 $1 \le K_i \le 150$),其中 $K_i$ 是 Antonella 将要加入球堆的第 $i$ 个球的颜色。
输出格式
输出单行,包含一个整数,表示 Antonella 所有可能搭建出的稳定球堆中,所有同色块的最大大小。
样例
输入样例 1
3 1 2 1
输出样例 1
2
输入样例 2
3 1 1 1
输出样例 2
3
输入样例 3
4 1 5 5 1
输出样例 3
2
输入样例 4
6 1 2 2 1 2 3
输出样例 4
3
说明
样例 1 说明:
Antonella 会将第一个球(颜色为 1)放在地面上。她也会将第二个球(颜色为 2)放在地面上,但它既可以放在第一个球的左边,也可以放在右边。当放入第三个球(颜色为 1)时,她会将其放在前两个球的上方。无论 Antonella 对第二个球做出何种选择,她都会得到一个稳定球堆,其中包含一个大小为 2 的同色块(颜色为 1)和一个大小为 1 的同色块(颜色为 2)。因此,所有可能搭建出的稳定球堆中,同色块的最大大小为 2。