#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5,mod=1e9+7;
#define int long long
#define fi first
int t,n,m,v,ans,las;
map<int,int> ma;
int fst(int a,int b) {
	a%=mod;
	int res=1;
	while(b) {
		if(b&1) res=res*a%mod;
		a=a*a%mod;
		b>>=1;
	}
	return res;
}
signed main() {
	freopen("assign.in","r",stdin);
	freopen("assign.out","w",stdout);
//	cout<<fst(464289274*464289274)
	cin>>t;
	while(t--) {
		cin>>n>>m>>v;
		ma.clear();
		ans=1;
		las=0;
		
		for(int i=1;i<=m;i++) {
			int c,d; cin>>c>>d;
			if(ma[c]!=0&&d!=ma[c]) ans=0;
			ma[c]=d;
		}
		
		for(auto u:ma) {
			if(las==0) {
				ans=ans*fst(v*v,u.fi-1)%mod;
			} else {
				int num=(fst(v*v,u.fi-las)-fst(v,u.fi-las-1)*(v-1)%mod+mod)%mod;
				ans=ans*num%mod;
			}
			las=u.fi;
		}
		ans=ans*fst(v*v,n-las)%mod;
		cout<<ans<<endl;
	}
	return 0;
}
/*
557584238 1 464289274
309302662 462600170
*/
