克拉克是一名人格分裂患者。某一天,克拉克分裂成了一个学生,在做题。 突然一道难题难到了克拉克,这道题是这样的: 给你$n$个数,要求选一些数(可以不选),把它们加起来,使得和恰好是$p$的倍数($0$也是$p$的倍数),求方案数。 对于$n$很小的时候,克拉克是能轻易找到的。然而对于$n$很大的时候,克拉克没有办法了,所以来求助于你。
第一行一个整数$T(1 \le T \le 10)$,表示数据的组数。 每组数据第一行是两个正整数$n, p(1 \le n, p \le 1000)$。 接下来的一行有$n$个整数$a_i(|a_i| \le 10^9)$,表示第$i$个数。
对于每组数据,输出一个整数,表示问题的方案数,由于答案很大,所以求出对$10^9+7$的答案即可。
1 2 3 1 2
2
有两种方案:什么也不选;全都选。