2015 年的国际信息学奥林匹克竞赛将在哈萨克斯坦举行。哈萨克斯坦的“哈萨克”在英文中拼写为 “QAZAQ”。这个 QAZAQ 是一个回文。得知这一点后,JOI 君喜欢上了回文,并决定从他看到的字符串中制作回文。
JOI 君发现了一个长度为 $N$ 的字符串。每个字符都对应一个 1 到 $C$ 之间的整数,将字符串中的字符替换为整数后,得到数列 $S = (S_1, S_2, \dots, S_N)$。我们将该数列中从第 $i$ 个到第 $j$ 个 ($1 \le i \le j \le N$) 取出的数列 $(S_i, S_{i+1}, \dots, S_j)$ 称为片段 $(i, j)$。当片段 $(i, j)$ 与其反转后的数列相等,即 $(S_i, S_{i+1}, \dots, S_j) = (S_j, S_{j-1}, \dots, S_i)$ 成立时,称片段 $(i, j)$ 为回文。
JOI 君通过以下操作制作回文:
- 首先,选择 $S$ 的一个片段。将选定的片段记为 $T$。
- 将片段 $T$ 按升序排序,记为 $T'$。
- 对于数列 $S$,将片段 $T$ 替换为 $T'$。将替换后的数列记为 $S'$。也就是说,当 JOI 君选择了片段 $(i, j)$ 时,将 $S_i, S_{i+1}, \dots, S_j$ 按升序排序得到 $T'_i \le T'_{i+1} \le \dots \le T'_j$,则 $S' = (S_1, S_2, \dots, S_{i-1}, T'_i, T'_{i+1}, \dots, T'_j, S_{j+1}, \dots, S_N)$。
- 之后,寻找 $S'$ 中作为回文的片段。
JOI 君希望通过此操作,制作出尽可能长的回文。
题目描述
给定 JOI 君发现的字符串所对应的数列 $S$。求 JOI 君能够制作出的回文的最大长度。
输入格式
从标准输入读取以下内容:
- 第 1 行包含两个整数 $N, C$,以空格分隔。$N$ 表示 JOI 君发现的字符串的长度,$C$ 表示字符所对应的整数上限。
- 接下来的 $N$ 行包含数列 $S$ 的信息。其中第 $i$ 行 ($1 \le i \le N$) 包含整数 $S_i$。$S_i$ 表示数列 $S$ 的第 $i$ 个整数。
输出格式
将 JOI 君能够制作出的回文的最大长度作为一个整数输出到标准输出。
数据范围
所有输入数据满足以下条件:
- $1 \le N \le 3\,000$
- $1 \le C \le 3\,000$
- $1 \le S_i \le C$ ($1 \le i \le N$)
子任务
子任务 1 [10 点]
满足以下条件:
- $N \le 50$
- $C \le 50$
子任务 2 [90 点]
没有额外限制。
样例
样例输入 1
12 26 26 17 17 17 1 26 1 17 19 20 1 14
样例输出 1
8
说明 1
在该输入样例中,$N = 12, C = 26$,且 $S = (26, 17, 17, 17, 1, 26, 1, 17, 19, 20, 1, 14)$。在此处,通过将片段 $(4, 8)$ 按升序排序,得到 $S' = (26, 17, 17, 1, 1, 17, 17, 26, 19, 20, 1, 14)$,此时片段 $(1, 8)$ 成为回文。该回文的长度为 8,这是最长的。
样例输入 2
4 3 1 2 3 2
样例输出 2
3
说明 2
在该输入样例中,$S = (1, 2, 3, 2)$。在此处,通过将片段 $(1, 1)$ 按升序排序,得到 $S' = (1, 2, 3, 2)$。$S$ 和 $S'$ 是相同的数列。$S'$ 的片段 $(2, 4)$ 成为回文。该回文的长度为 3,这是最长的。