#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e4+10;
const int mod=1e9+7;
int T,n,m,v;
int c[N],d[N],num[N],fac[N];
int f[N][N];

main(){
	freopen("assign.in","r",stdin);
	freopen("assign.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	cin>>T;
	while(T--){
		memset(num,0,sizeof(num));
		cin>>n>>m>>v;
		bool fg=true;
		for(int i=1; i<=m; i++){
			cin>>c[i]>>d[i];
			if(!num[c[i]])num[c[i]]=d[i];
			else fg=false;
		}
		if(!fg){
			cout<<0<<'\n'; continue;
		}
		int ans=1;
		for(int i=1; i<n; i++){
			if(num[i]&&num[i+1]){
				ans=(ans*(v*v-1))%mod;
			}else ans=(ans*(v*v))%mod;
		}
		cout<<ans<<'\n'; 
	}
	return 0; 
}
/*
2
5 1 2
1 2
6 5 2
4 2
5 1
4 2
2 2
2 1
7 1 2
4 1
10 11 2
10 2
7 2
7 2
2 2
3 2
4 2
10 2
7 2
10 2
3 2
3 2
*/
