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
一行一个整数,表示你通关时最多能够获得的分数。
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。