编程题
### 问题描述
在一款名为《勇士的传奇》的游戏中,你需要帮助主人公组建一个强大的队伍来对抗邪恶的怪物。队伍中有许多勇士,每个勇士都有独特的特点。他们分别拥有攻击力和防御力两个属性,分别表示他们的战斗能力和抵御敌人攻击的能力。
现在,你面临一个任务:在队伍中选择尽可能多的勇士,使得他们的最大攻击力和最小攻击力的和不超过 $k$,同时他们的防御力总和达到最大。你需要编写一个算法来解决这个问题。
请你计算出满足以上条件的勇士的防御力总和的最大值。
### 输入格式
第一行输入两个整数 $n$ 和 $k$,表示队伍中的勇士数量和攻击力和的限制。保证 $1 \leq n, k \leq 10^5$。
接下来 $n$ 行,每行输入两个整数 $a_i$ 和 $b_i$,表示每个勇士的攻击力和防御力。保证 $1 \leq a_i, b_i \leq 10^5$。
### 输出格式
输出一个整数,表示满足要求选出的勇士的防御力总和的最大值。
### 样例输入
```
3 3
1 2
2 1
3 1
```
### 样例输出
```
3
```