#include<bits/stdc++.h>
using namespace std;
const int N=1e6+1e5;
const long long mod=1e9+7;
int q;
long long n,m;
long long v;
int a[N];
long long ans=1;
void init(){
	scanf("%lld%lld%lld",&n,&m,&v);
	for (int i=1;i<=n;++i) a[i]=0;
	ans=1;
	bool vis=false;
	for (int i=1;i<=m;++i){
		int c,d;
		scanf("%d%d",&c,&d);
		if (a[c]!=0){
			printf("0\n");
			vis=true;
		}
		a[c]=d;
	}
	if (vis==true) return ;
	for (int i=1;i<n;++i){
		if (a[i]!=0&&a[i+1]!=0) ans=ans*(v*v%mod-(v-1))%mod;
		else ans=ans*(v*v%mod)%mod;
	}
	printf("%lld\n",ans);
}
int main(){
	freopen("assign.in","r",stdin);
	freopen("assign.out","w",stdout);
	scanf("%d",&q);
	while (q--){
		init();
	}
	return 0;
}
