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

题目描述

301老周组织的一年一度 ACM 集训队运动会在这金秋10月如约而至。

为了增加趣味性,今年老周突发奇想,新增了一个射箭比赛项目。

区别于传统的积分规则,本次射箭项目也非常考验选手智力。

比赛规则如下:运动场上有n个箭靶,编号为1-n,射中编号为i 的箭靶可以得到

但如果累计射中编号为i的箭靶靶心 a_i 次,那么选手可以额外获得b_i的奖励分。

同时比赛也规定,箭靶 i最多被射中a_i次,超出 a_i不计分

集训队的小明报名参加了本项射箭比赛,虽然小明射箭技术精湛(百发百中),但在算法能力上确是一个小萌新。

现在他邀请聪明的你帮他计算一下,他最少需要射出几箭,才能保证他的得分不低 k

如果小明无论射出多少箭都无法获得大于等于k的得分,那么输出"wa"。
     

输入描述:

1行输入正整数,表示运动场内箭靶的数量以及小明在射箭比赛中的最少得分。

行每行输入两个正整数,中间用空格隔开,含义如上文所述。

输出描述:

输出答案。
示例1

输入

复制
2 70
3 50
5 80

输出

复制
3

说明

小明可以选择在编号为 1 的箭靶上射箭 3 次,在得到基础分 30 分的前提下,他还可以得到奖励分 50 分,总分 80 分\geq k,这是最佳策略,答案等于 3。
示例2

输入

复制
2 40
3 50
5 80

输出

复制
2

说明

小明可以选择在编号为2的箭靶上射箭 2 次,得分为2\times 20=40\geq k,此举为最佳策略,答案等于 2。