Description
# 题目背景
2023 年 12 月 GESP C++ 六级编程第 1 题
# 题目描述
你来到了一个闯关游戏。
这个游戏总共有 $N$ 关,每关都有 $M$ 个通道,你需要选择一个通道并通往后续关卡。其中,第 $i$ 个通道可以让你前进 $a_{i}$ 关,也就是说,如果你现在在第 $x$ 关,那么选择第 $i$ 个通道后,你将直接来到第 $x + a_{i}$ 关(特别地,如果 $x + a_{i} \geq N$,那么你就通关了)。此外,当你顺利离开第 $s$ 关时,你还将获得 $b_{s}$ 分。
游戏开始时,你在第 $0$ 关。请问,你通关时最多能获得多少总分?
# 输入格式
第一行两个整数 $N, M$ ,分别表示关卡数量和每关的通道数量。
接下来一行 $M$ 个用单个空格隔开的整数 $a_{0}, a_{1}, ..., a_{M-1}$ 。
接下来一行 $N$ 个用单个空格隔开的整数 $b_{0}, b_{1}, ..., b_{N-1}$ 。
# 输出格式
一行一个整数,表示你通关时最多能够获得的分数。
# 样例
```input1
6 2
2 3
1 0 30 100 30 30
```
```output1
131
```
```input2
6 2
2 3
1 0 30 100 30 -1
```
```output2
101
```
# 提示
## 样例1解释
你可以在第 $0$ 关选择第 $1$ 个通道,获得 $1$ 分并来到第 $3$ 关;随后再选择第 $0$ 个通道,获得 $100$ 分并来到第 $5$ 关;最后任选一个通道,都可以获得 $30$ 分并通关。如此,总得分为 $1 + 100 + 30 = 131$ 。
## 样例2解释
请注意,一些关卡的得分可能是负数。
## 数据范围
对于 $20 \%$ 的测试点,保证 $M = 1$ 。
对于 $40 \%$ 的测试点,保证 $N \leq 20$;保证 $M \leq 2$ 。
对于 $100 \%$ 测试点,保证 $N \leq 10^{4}$ ;保证 $M \leq 100$;保证 $1 \leq a_{i} \leq N, |b_{i}| \leq 10^{5}$ 。