Collecting stars
题号:NC214461
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

pipipi最近在玩一款电子游戏。

游戏中pipipi要操控他所扮演的角色,在一个二维平面内收集星星。

如图



所有星星分布在同一高度,一共有n颗星星,从左到右第i颗星星的位置为pos_i

每颗星星下方都有一块悬浮板(图中的长方形代表悬浮板),悬浮板的位置与对应星星的位置相同。

每块悬浮板仅可供角色停留一次,也就是说当角色离开这块悬浮板时,悬浮板就会自动消失。(图中用灰色的圆点表示被操控的角色)

每次角色可以选择向左或者向右跳跃,最远的跳跃距离为m。也就是说假如目前角色处于位置x,那么他只能到达位置在这个范围内的悬浮板。(为了简化问题忽略悬浮板的长度,如果这个范围内没有悬浮板,那游戏结束了)

角色的初始位置在第s块悬浮板,求pipipi最多能够得到多少星星。

输入描述:

输入共两行

第一行包含三个正整数n,m,s代表星星或者悬浮板的数量、角色最远跳跃距离、角色初始所在悬浮板的编号。



第二行共in个正整数,从左至右第i个正整数pos_i代表第i块悬浮板的位置。

且对于任意i,j满足都有

输出描述:

输出共一行一个正整数代表答案
示例1

输入

复制
6 3 4
1 3 5 6 7 9

输出

复制
6

说明

第一组样例可以取完所有星星,以下是一种取完所有星星的可能的方法。