宝藏猎人
题号:NC236173
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

有一片群岛,总共有30001个岛屿,编号从0到30000,其中有 n 个宝藏在这些岛屿中。Kitayuta是一位宝藏猎人,他初始在0号岛屿上。为了获得宝藏,他按照如下规则经过这些岛屿:

  1. 他第一步从 0 号岛屿跨越 d 个岛屿到达 d 号岛屿。

  2. 接下来每一步,他只能前往编号更大的岛屿。并且,假设他前一步跨越了 x 个岛屿,那么他下一步只能跨越 y 个岛屿,其中  且  。如果下一步没有可以到达的岛屿,Kitayuta就会停止寻找宝藏。

假设Kitayuta到达有宝藏的岛屿时,他可以获得这个岛屿的所有宝藏。Kitayuta想知道他最多能获得多少宝藏,你能帮帮他吗?

输入描述:

第一行输入两个整数  ,分别表示宝藏的个数和Kitayuta第一步到达的岛屿。

接下来 n 行,每行输入一个整数,其中第 i 个整数 p_i 表示第 i 个宝藏所处的岛屿。数据保证  。

输出描述:

输出一行一个整数,表示Kitayuta按照上述规则行动时,最多能获得多少宝藏。
示例1

输入

复制
4 10
10
21
27
27

输出

复制
3

说明

Kitayuta可以按照0\rightarrow 10\rightarrow19 \rightarrow27的路线移动,总共能获得3个宝藏。
示例2

输入

复制
13 7
8
8
9
16
17
17
18
21
23
24
24
26
30

输出

复制
4