自旅行者到来后,蒙德的人们突然对计算机编程和算法产生了浓厚的兴趣,其中就包括西风骑士团的火花骑士——可莉。
来源:原神官方
由于再次被琴关进禁闭室,可莉决定花时间学习著名的莫队算法(Mo's algorithm),该算法可以在 $O(n^{1.5})$ 的时间复杂度内解决某些无需修改的区间查询问题。
为了考察可莉是否真正掌握了该算法(或者实际上是在偷偷制作炸弹),琴给了她一个整数序列 $a_1, a_2, \dots, a_n$,并提出了一些查询 $[l_i, r_i]$,要求她找出连续子序列 $a_{l_i}, a_{l_i+1}, \dots, a_{r_i}$ 中的众数。众数是指序列中出现次数最多的数。
在莫队算法的帮助下,可莉轻松解决了这个问题,但另一个问题又浮现在她脑海中。给定一个长度为 $n$ 的整数序列 $a_1, a_2, \dots, a_n$ 和一个整数 $k$,你可以执行至多一次以下操作:选择两个整数 $l$ 和 $r$,满足 $1 \le l \le r \le n$,并将所有满足 $l \le i \le r$ 的 $a_i$ 加上 $k$。注意,你也可以选择不执行此操作。请计算在最优选择下(执行或不执行操作),整个序列中众数出现的最大次数。
输入格式
每个测试文件中仅包含一组测试数据。
第一行包含两个整数 $n$ 和 $k$ ($1 \le n \le 10^6, -10^6 \le k \le 10^6$),分别表示序列的长度和加数。
第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$ ($-10^6 \le a_i \le 10^6$),表示原始序列。
输出格式
输出一行,包含一个整数,表示执行(或不执行)操作后,整个序列中众数出现的最大次数。
样例
输入 1
5 2 2 2 4 4 4
输出 1
5
输入 2
7 1 3 2 3 2 2 2 3
输出 2
6
输入 3
7 1 2 3 2 3 2 3 3
输出 3
5
输入 4
9 -100 -1 -2 1 2 -1 -2 1 -2 1
输出 4
3
说明
对于第一个样例,选择 $l = 1$ 和 $r = 2$,序列将变为 $\{4, 4, 4, 4, 4\}$。众数显然是 $4$,出现了 $5$ 次。
对于第二个样例,选择 $l = 4$ 和 $r = 6$,序列将变为 $\{3, 2, 3, 3, 3, 3, 3\}$。众数是 $3$,出现了 $6$ 次。
对于第四个样例,选择不执行操作。众数是 $1$ 和 $-2$,它们都出现了 $3$ 次。