#CF1203F1. 完成所有项目(简单版本)

完成所有项目(简单版本)

F1. 完成所有项目(简单版本)
每个测试的时间限制:22
内存限制:256256 兆字节

简单版本与困难版本唯一的区别在于:

  • 简单版本中,你需要完成所有项目
  • 困难版本中则不一定需要完成所有项目。

题目描述

Polycarp 是一位非常著名的自由职业者。他当前的评分为 rr 分。

一些非常富有的客户请他为自己公司完成一些项目。
要完成第 ii 个项目,Polycarp 需要至少拥有 aia_i 分;
完成该项目后,他的评分会变化 bib_i 分(评分可以增加或减少 bib_ibib_i 可正可负)。
Polycarp 的评分在任何时候都不能低于 00 分,否则人们不会信任评分这么低的自由职业者。

问:是否存在一种项目完成顺序,使得 Polycarp 能在每个项目开始前拥有足够评分,并且在每个项目完成后评分非负?

换句话说,你需要检查是否存在一个项目的排列顺序,使得 Polycarp 能够按照该顺序完成所有项目,并且在每个项目开始前评分 ai\ge a_i,每个项目完成后评分 0\ge 0


输入格式

第一行包含两个整数 nnrr1n1001 \le n \le 1001r300001 \le r \le 30000)—— 项目数量,以及 Polycarp 的初始评分。

接下来的 nn 行,每行描述一个项目,包含两个整数 aia_ibib_i1ai300001 \le a_i \le 30000300bi300-300 \le b_i \le 300)—— 完成该项目所需的最低评分,以及完成后的评分变化。


输出格式

输出 "YES""NO"


示例

示例 1

输入:

3 4
4 6
10 -2
8 -1

输出:

YES

示例 2

输入:

3 5
4 -5
4 -2
1 3

输出:

YES

示例 3

输入:

4 4
5 2
5 -3
2 1
4 -2

输出:

YES

示例 4

输入:

3 10
10 0
10 -10
30 0

输出:

NO

提示

  • 在第一个示例中,可行的顺序为:1,2,31, 2, 3
  • 在第二个示例中,可行的顺序为:2,3,12, 3, 1
  • 在第三个示例中,可行的顺序为:3,1,4,23, 1, 4, 2