#include<bits/stdc++.h>
#define int long long
#define mod 1000000007
using namespace std;
int n,m,k;
struct st{
	int p,v;
	bool operator<(const st&re)const{
		return p==re.p?v<re.v:p<re.p;
	}
}a[100005];
int pw(int x,int p){
	int res=1;
	for(;p;p>>=1,x=x*x%mod) if(p&1) res=res*x%mod;
	return res;
}
void doing(){
	cin>>n>>m>>k;
	for(int i=1;i<=m;i++) scanf("%lld %lld",&a[i].p,&a[i].v);
	sort(a+1,a+m+1);
	int ans=pw(k*k%mod,a[1].p-1+n-a[m].p);
	for(int i=1;i<m;i++){
		int t=a[i+1].p-a[i].p-1;
		if(t<0) ans*=a[i].v==a[i+1].v;
		else ans=ans*(pw(k,t*2+2)-pw(k,t)*(k-1)%mod+mod)%mod;
	}
	printf("%lld\n",ans);
}
signed main(){
	freopen("assign.in","r",stdin);
	freopen("assign.out","w",stdout);
	int T;
	cin>>T;
	while(T--) doing(); 
} 
//lie yan wei ta jia mian
