编程题
### 问题描述
小齐有一些大草捆,分布在连接她的谷仓和房子的道路上。每个草捆 $j$ 有一个大小 $S_j$ 和一个不同的位置 $P_j$,表示它在一维道路上的位置。小齐当前位于位置 $B$,而那里没有草捆。
奶牛可以沿道路自由移动,甚至可以移动到一个草捆所在的位置,但不能穿越该位置。特别地,如果奶牛朝着同一方向运动 $D$ 个单位距离,它就能够积攒足够的速度,以摧毁所有大小严格小于 $D$ 的草捆。当然,在这样做之后,它可能会开辟更多的空间,使她能够一直冲向其他草捆,将草捆也消除掉。
农夫小齐目前正在重新粉刷她的房子和谷仓,并希望确保奶牛无法到达这两个地方(奶牛和新油漆不是个好组合!)。因此,农夫小齐希望确保奶牛永远不能穿过最左边或最右边的草捆,以便她始终被困在草捆之间。农夫小齐有能力向他选择的一个草捆添加草,以帮助保持奶牛的困境。请帮助他确定必须额外添加的最小草量,以确保奶牛无法逃脱。
### 输入格式
第一行输入一个整数 $N$,表示草捆的数量。接下来的一行包含两个整数 $B$ 和 $N$,表示奶牛的初始位置和草捆的数量。接下来的 $N$ 行描述了每个草捆,每行包含两个整数 $S_j$ 和 $P_j$,表示草捆的大小和位置。
### 输出格式
输出一个整数,表示为防止奶牛逃脱而必须额外添加的最小草量。如果无法防止奶牛逃脱,请输出 $-1$。
### 样例输入
```
5 7
8 1
1 4
3 8
12 15
20 20
```
### 样例输出
```
4
```
### 评测数据规模
$1 \leq N \leq 100,000$。