题目描述
我们有一个长度为N2的正整数序列 A=(A1,A2,…,AN2),以及一个正整数 S。对于这个正整数序列,对于任意的正整数 i (1≤i≤N2−N),都有 Ai=Ai+N,只有 A1,A2,…,AN 给定作为输入。
寻找最小的整数 L,使得每个和为 S 的正整数序列 B 都是正整数序列 (A1,A2,…,AL) 的一个(不一定连续的)子序列。
在问题的约束条件下,至少存在一个这样的 L。
约束条件
- 1≤N≤1.5×106
- 1≤S≤min(N,2×105)
- 1≤Ai≤S
- 对于每个正整数 x (1≤x≤S),(A1,A2,…,AN) 中至少含有一个值为 x 的元素。
- 输入中的所有值都是整数。
输入
从标准输入读取输入数据的格式如下:
N S
A1 A2 … AN
输出
输出答案。
示例输入 1
6 4
1 1 2 1 4 3
示例输出 1
9
有八个序列 B 可以考虑:$B=(1, 1, 1, 1), (1, 1, 2), (1, 2, 1), (1, 3), (2, 1, 1), (2, 2), (3, 1), (4)$。
例如,对于 L=8,序列 B=(2,2) 不是 (A1,A2,…,A8)=(1,1,2,1,4,3,1,1) 的子序列。
另一方面,对于 L=9,每个 B 都是 (A1,A2,…,A9)=(1,1,2,1,4,3,1,1,2) 的子序列。
示例输入 2
14 5
1 1 1 2 3 1 2 4 5 1 1 2 3 1
示例输出 2
11
示例输入 3
19 10
1 6 2 7 4 8 5 9 1 10 4 1 3 1 3 2 2 2 1
示例输出 3
39