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

题目描述

牛牛打开了一个有趣的游戏。在游戏中,灵石是一种非常重要的资源。每位玩家每天有且仅有一次采集的机会。
灵石会在许多浮岛上刷新,每个浮岛上灵石刷新数量可能不同。这些浮岛之间通过传送法阵相连,激活每个岛屿上的传送法阵花费的灵石数量也不同。玩家可以耗费  块灵石从任意一个其他浮岛或初始平台前往第  个浮岛。采集完毕后玩家可以从任何浮岛直接退出地图。
现在,牛牛手中有着  块灵石,他想知道自己今天采集结束后最多能拥有多少块灵石。牛牛只能在周末玩一小时游戏,他希望你能编写一个程序帮他及时算出来。

输入描述:

第一行两个正整数  分别表示浮岛的数量和牛牛手中初始的灵石数量。

接下来  行,每行两个正整数,第  行的正整数  表示第  个浮岛上今日刷新的灵石数量, 表示传送到第  个浮岛所需的灵石数量。

输出描述:

一个正整数,表示牛牛今天采集后最多能拥有的灵石数量。
示例1

输入

复制
3 5
4 3
4 3
4 3

输出

复制
8
示例2

输入

复制
2 1
5 2
8 2

输出

复制
1
示例3

输入

复制
2 6
2 3
4 3

输出

复制
7

备注:

对于  的数据,满足 
对于  的数据,满足
保证答案在int范围内。