柳下惠的数学题
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

定义一个无限长的数组,给定前n项,若i>n,则a[i]=a[i-n]。接下来有Q次询问,每次给定一个N,你只需回答对1e9+7取模的结果。

输入描述:

第一行输入n,Q 第二行输入n个数字表示a数组的前n项 接下来Q行,每行输入一个N表示一次询问。 1<=a[i],n<=3000000,1<=Q<=300000,1<=N<=1e18

输出描述:

每次询问,输出一个整数。
示例1

输入

复制
3 3
1 2 3
4
10
15

输出

复制
186
4780
21820