编程题
### 问题描述
小蓝正在准备参加一场游戏比赛。比赛共有 $n$ 关,每一关有若干种通关方式。每通过一关,小蓝就可以获得一个奖牌,或者小蓝可以选择放弃,跳到下一关但没有奖牌。
具体地,给定一个长度为 $n$ 的整数数组 $a$ ,$a[i]$ 表示第 $i$ 关的通关方式数量。一共有 $T$ 询问,每次询问输入一个整数 $x$ ,表示最多能获得 $x$ 个奖牌的数量下,可能的通关路径总数。
为了防止答案过大,对每次询问输出的答案对 $10^9+7$ 取余输出。
### 输入格式
第一行输入两个数 $n$ 和 $T$ ,分别表示比赛的关数和有多少次询问。
第二行输入 $n$ 个数 $a_1,a_2...a_n$ 表示没每关的通关方式数量。
接下来 $T$ 每行输入一个数 $x$ ,表示最多能获得 $x$ 个奖牌的数量下,可能的通关路径总数。
### 输出格式
对于每次的询问输出一个整数,表示答案,答案对 $10^9+7$ 取余输出(每个答案之间用空格隔开)。
### 样例输入
```text
5 3
1 2 3 4 5
1
3
5
```
### 样例输出
```text
15 225 120
```
### 说明
对于样例第一个询问的奖牌数最多为 $1$ 个,所以只能过一关,那么就将着五关分别相加求和即 $1+2+3+4+5=15$ 。
### 评测数据规模
对于 $100$% 的评测数据,$1\leq T \leq n\leq 5000,1\leq a_i\leq 10^6,1\leq x \leq n$。