Problem1708--闯关游戏

1708: 闯关游戏

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MB

Description

你来到了⼀个闯关游戏。 这个游戏总共有 N 关 ,每关都有 M 个通道,你需要选择⼀个通道并通往后续关卡。其中 ,第 i 个通道可以让你前进 ai关,也就是说,如果你现在在第x 关,那么选择第 i 个通道后,你将直接来到第 x+ai 关(特别地,如果x + ai ≥ N,那么你就通关了)。此外,当你顺利离开第 S 关时,你还将获得bs 分。游戏开始时,你在第 0 关。请问,你通关时最多能获得多少总分?

Input

第⼀⾏两个整数 N, M ,分别表⽰关卡数量和每关的通道数量。接下来⼀⾏ M 个⽤单个空格隔开的整数 a0 , a1, … ,aM-1 。保证1 ≤ ai ≤ N。接下来⼀⾏ N 个⽤单个空格隔开的整数 b0 , b1, … ,bN-1 。保证|bi|≤ 105

Output

一行一个整数,表示你通关时最多能够获得的分数。

Sample Input Copy

6 2
2 3
1 0 30 100 30 30

Sample Output Copy

131

HINT

样例解释: 你可以在第 0 关选择第 1 个通道,获得 1 分并来到第3 关;随后再选择第0个通道,获得 100 分并来到第 5 关;最后任选一个通道,都可以获得30 分并通关。如此,总得分为 1+ 100 + 30 = 131。
对于 20%的测试点 ,保证 M = 1 。 
对于 40%的测试点 ,保证 N ≤ 20 ;保证 M ≤ 2。
 对于所有测试点 ,保证 N ≤ 10 4 ;保证 M ≤ 100。

Source/Category