#YDRG006G. 爆亡括号

爆亡括号

题目描述

请注意题目不寻常的时空限制。

一个仅含 ( ) ?\texttt{( ) ?} 的字符串是好的当且仅当可以把每个 ?\texttt? 替换为 (\texttt()\texttt) 使得最终形成一个匹配的括号串。

给定正整数 nn,有 qq 组询问,对于每组询问给定一个 kk,你需要求出有多少个长度为 2n2n 的恰包含 kk?\texttt? 的好字符串。

答案可能很大,对 109+357910^9+3579(一个质数)取模。

输入格式

第一行两个正整数 n,qn,q

qq 行,每行一个非负整数 kk 描述一组询问。

输出格式

qq 行,每行回答一组询问,答案对 109+357910^9+3579 取模。

样例输入

5 5
1
2
3
4
5

样例输出

420
1646
3468
4423
3598

测试点约束

本题采用捆绑测试。

数据范围:

Subtask 分值 特殊性质 时间限制
1 10 n100n\le 100 2 s
2 30 q=1q=1
3 20 n105n\le 10^5
4 40 无特殊限制 10 s

对于全部数据,1qn1071\le q\le n\le 10^70kn0\le k\le n。输入文件较大,请选手注意 IO 效率。