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

「TJOI2018」教科书般的亵渎

题目描述

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

输入格式

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

输出格式

一共 ( T ) 行,每行一个数,表示第 ( i ) 组测试数据中小豆最后可以获得的分数,结果对 ( 10^9 + 7 ) 取模。

样例

输入

2  
10 1  
5  
4 2  
1  
2  

输出

415  
135  

数据范围与提示

对于 ( 10% ) 的数据,有 ( m = 0 );
对于 ( 20% ) 的数据,有 m1 m \leq 1
对于 ( 30% ) 的数据,有 m2m \leq 2
对于 ( 40% ) 的数据,有 m3 m \leq 3
对于 ( 50% ) 的数据,有 m4 m \leq 4
对于 ( 60% ) 的数据,有 m5 m \leq 5
对于 ( 100% ) 的数据,有 m50 m \leq 50 n1013 n \leq 10^{13}