编程题
### 问题描述
《明日方舟》是由鹰角网络所开发的一款策略塔防手机游戏。在每次的作战行动中,作为博士的你在战斗开始前需要合理分配干员进行战斗,以达到最高的战斗效率。
现有 $n$ 个干员,每个干员有攻击力和费用两个属性。同时有 $m$ 个敌人,每个敌人具有一定的生命值。你的任务是选择一些干员进行战斗,使得总费用不超过给定的预算 $B$,同时击败所有敌人。
干员与敌人的关系如下:
- 若选择干员 $i$ 进行战斗,则其可以在每一回合内对**所有敌人**造成 $attack_i$ 的伤害。
- 若敌人 $j$ 的生命值降为 $0$ 及以下,则该敌人被击败。
- 敌人不会行动,不会发起攻击。
请你选择合适的干员,计算最小回合数以击败所有敌人。
### 输入格式
第一行包含三个整数 $n$、$m$ 和 $B$,表示干员数量、敌人数量和总预算($1 \leq n, m, B \leq 10^4$)。
接下来 $n$ 行,每行包括两个整数 $attack_i$ 和 $cost_i$ ,表示第 $i$ 个干员的攻击力和费用($1 \leq attack_i, cost_i \leq 10^4$)。
接下来 $m$ 行,每行包括一个整数 $life_j$ ,表示第 $j$ 个敌人的生命值($1 \leq life_j \leq 10^4$)。
### 输出格式
输出一个整数,表示击败所有敌人所需的最小的回合数。若无法在预算内击败所有敌人,则输出 $-1$ 。
### 样例输入
```
3 2 10
5 4
3 3
2 2
6
5
```
### 样例输出
```
1
```
### 测评数据规模
$1 \leq n,m \leq 10^4$,$0 \leq B \leq 10^4$,$1 \leq attack_i, cost_i, life_j \leq 10^4$。