D. 椿萧

传统 1000 ms 256 MiB
标准 IO
文本比较

题目描述

身为游戏爱好者,小张最近沉迷于新发布的赛博朋克主题FPS《朵拿朵拿》(众所周知,Nekopara也是第一人称射击大作)。在这个游戏中,重要的内容之一是操纵角色与男性敌人(确信)战斗(大嘘),这在游戏中被称为“椿萧”。每次椿萧后,小张都会获得游戏内的奖励,但是,战斗角色的精力也会随之被消耗。精力并不是无限的,所以,为了获得尽可能多的奖励,小张必须合理选择战斗的敌人。

在《朵拿朵拿》中,与不同敌人战斗获得的奖励是相同的。所以,最终的奖励只与战斗的场数有关。另外,与其他游戏不同,战斗消耗的精力并不是一个固定值。具体来说,在精力值 MM 之外,角色还有一个精力消耗值 CC ,初始为 00 。每个敌人有一个不同消耗上升值 AiA_i 。每次战斗后,角色的精力消耗值 CC 先加上敌人的消耗上升值 AiA_i ,再耗去新的精力消耗值 CC’ 个单位的精力值。

如果精力值 MM 变为负数,角色就会因为精疲力竭而精神崩溃,再也无法战斗。所以,小张要经常关注精力值,为角色补充精力。对于一个给定的敌人序列,小张可以选择是否和下一名敌人战斗,但不能改变敌人出现的顺序。换句话说,小张可以和敌人序列的一个子序列战斗。现在,小张想知道,面对接下来的敌人序列,他最多可以获得多少奖励。

输入格式

输入第一行为两个整数 NNSS1N2×1051 \leq N \leq 2 \times 10^5 , 1S10101 \leq S \leq 10^{10} ),分别代表敌人的数目和角色的初始精力值。

第二行一共有 NN 个整数,第 ii 个整数 AiA_i1Ai51 \leq A_i \leq 5 )代表第 ii 个敌人的消耗上升值。

输出格式

输出一行一个整数 AnsAns ,代表角色最多可以战斗而不精神崩溃的场数。

样例

样例输入1

4 14
2 4 3 1

样例输出1

3

样例输入2

4 8
2 1 1 3

样例输出2

3