#2578. 「TJOI2018」教科书般的亵渎

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: zjq

题目描述

小豆喜欢玩游戏,现在他在玩一个游戏遇到这样的场面,每个怪的血量为 a_i ,且每个怪物血量均不相同, 小豆手里有无限张“亵渎”。
亵渎的效果是对所有的怪造成 1 点伤害,如果有怪死亡,则再次施放该法术。我们认为血量为 0 的怪物死亡。
小豆使用一张“亵渎”会获得一定的分数,分数计算如下,在使用一张“亵渎”之后,每一个被亵渎造成伤害的怪会产生 x^k ,其中 x 是造成伤害前怪的血量为 x 和需要杀死所有怪物所需的“亵渎”的张数 k

输入格式

第一行输入一个 T ,表示有多少组测试数据。
每组组测试数据第一行为 n m ,表示有当前怪物最高的血量 n ,和 m 种没有出现的血量。
接下来 m 行,每行 1 个数 a_i ,表示场上没有血量为 a_i 的怪物。

输出格式

一共 T 行,每行一个数,第 i 行表示第 i 组测试数据中小豆的最后可以获得的分数,因为这个分数会很大需要模 10^9 + 7

样例

样例输入

2
10 1
5
4 2
1
2

样例输出

415
135

数据范围与提示

对于 10\% 的数据,有 m = 0
对于 20\% 的数据,有 m \leq 1 。 对于 30\% 的数据,有 m \leq 2 。 对于 40\% 的数据,有 m \leq 3 。 对于 50\% 的数据,有 m \leq 4 。 对于 60\% 的数据,有 m \leq 5 。 对于 100\% 的数据,有 m \leq 50 , n \leq 10^{13}