完美项目
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

PYF对算法很感兴趣,假设他目前的算法能力值为r。

一些非常富有的公司委托石家庄铁道大学算法协会完成一些高难度的算法项目,PYF身为算法协会的接班人,他想包揽所有的这些项目来证明自己的能力,他能做到吗?

显然,PYF每完成一个项目,他的算法能力值将会发生变化!但是,他的能力值不能为负数!是的,任何一个顾客都讨厌能力值为负数的人,为了PYF的未来,你不能让他在做完所有项目之后能力值为负数!

请你编写一个程序检查是否存在一个顺序能使PYF完成所有的项目,并在完成项目之后能力值非负。

输入描述:

输入的第一行包含两个用空格隔开的整数,n和r,(1≤n≤100,1≤r≤30000),代表项目数和PYF的初始能力值。

接下来有n行,每行包含两个整数a和b(-300≤a≤300,-300≤b≤300)代表完成该项目所需能力值和完成后的能力变化值。

输出描述:

若能输出 "YES" (不带引号),否则输出"NO" (不带引号)。
示例1

输入

复制
3 4
4 6
10 -2
8 -1

输出

复制
YES

说明

在该示例中顺序为1,2,3。
示例2

输入

复制
3 5
4 -5
4 -2
1 3

输出

复制
YES

说明

在该示例中顺序为2,3,1。
示例3

输入

复制
4 4
5 2
5 -3
2 1
4 -2

输出

复制
YES

说明

在该示例中顺序为3,1,4,2。
示例4

输入

复制
3 10
10 0
10 -10
30 0

输出

复制
NO