← Home
#include<bits/stdc++.h>

using namespace std;
#define ll long long

const int N = 1000005, P = 1000000007;
int T, n, p, a[N];
int Pow(ll x, int y=P-2){
	int ans=1;
	for(; y; y>>=1, x=x*x%P) if(y&1) ans=ans*x%P;
	return ans;
}
int main() {
	scanf("%d", &T);
	while(T--){
		scanf("%d%d", &n, &p);
		for(int i=1; i<=n; ++i) scanf("%d", a+i);
		if(p==1){
			printf("%d\n", n&1);
			continue;
		}
		sort(a+1, a+n+1);
		int ans=0, x=1e6, y=0;
		for(int i=n; i; --i){
			while(y && x>a[i] && y<1e9) y=min((ll)1e9, (ll)y*p), --x;
			x=a[i];
			if(!y) ++y, (ans+=Pow(p, x))%=P;
			else --y, (ans+=P-Pow(p, x))%=P;
		}
		printf("%d\n", ans);
	}
	return 0;
}