EOJ Monthly 2019.9 (based on September Selection)

B. 定向越野

单点时限: 0.5 sec

内存限制: 512 MB

随着教官的一声哨响,定向越野开始了。

定向越野,作为一种竞技项目,提供给队员的只有指北针和地图,要求参赛队员以最快的速度到访每一个标记以完成比赛。这个项目不仅考验参赛队员的跑步速度,也考验着队员对学校的熟悉程度。

Cuber QQ 觉得单纯的定向越野比赛太无聊了。所以他向教官提出了改革意见。于是,今年的定向越野比赛,与以往不太一样。 Cuber QQ 为了增加比赛的趣味性,在 n 个打卡地点分别放了不同的数字卡片,选手需要收集打卡地点的数字卡片并且带到终点。在终点的时候, Cuber QQ 会要求你把这些数字卡片任意地组成 k 个十进制数。你的分数就是这 k 个数中的最小值。为了不为难你,这些数字卡片中不会出现数字 0

Cuber QQ 会按照所有人的分数从高到低排序,获得每个参赛选手的排名。

Cuber QQ 对于每一个不同的选手,会给出不同的 k ,所以他需要在选手之前算出最优的答案,即他需要知道 n 个数字组成的 k 个十进制数中最小值最大是多少。

输入格式

输入第一行包含两个整数 n,p1n105,1p105 ) ,分别表示卡片的数量,需要组成的十进制数个数和参赛选手数量。

第二行包含一个长度为 n 的仅包含数字的字符串,表示 n 个卡片上的数字。

接下来的 p 行,每行一个整数 ki ,表示对第 i 个选手给出的 k1kin ) 。

输出格式

输出包含 p 行,每行一个整数,表示每个选手能够获得的最大分数对 1 000 000 007 取模的结果。

样例

Input
3 3
123
1
2
3
Output
321
3
1