The Scarborough Fair
题号:NC200284
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述




Vanis来到了一座建在浮空岛上的充满着异域风格的小镇,他发现岛上使用着三种货币,他将这三种货币分别称作A币、B币、C币。
他发现,可以使用2枚A币兑换1枚B币,可以使用2枚B币兑换1枚C币,可以使用2枚C币兑换1枚A币(十分古怪的兑换规则)。
Vanis经过一番搜寻,成功找到了a枚A币、b枚B币、c枚C币,他想要购买n个物品,每个物品只能够用A、B、C三种币的某一种购买。
Vanis想要知道他能否成功兑换到他想要的全部n个物品。

输入描述:

第一行包含四个整数n、a、b、c,相邻两个整数之间使用一个空格符分隔。
第2~n+1行,每行有两个用空格分隔的整数,其中第i行的两个整数依输入顺序记作t_iw_it_i表示购买所需货币种类,1表示A币,2表示B币,3表示C币。w_i表示购买第i个物品需要花费w_i个种类为t_i的货币。

数据规范:
* .
* .
* .
* .

输出描述:

如果Vanis能够购买全部的$n$种物品,则输出`YES`,反之输`NO`(输出的大小写任意)。
示例1

输入

复制
2 6 2 2
1 2
3 4

输出

复制
YES
示例2

输入

复制
2 6 1 2
1 2
3 4

输出

复制
NO