#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int t;
ll mod=1e9+7;
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	freopen("assign.in","r",stdin);
	freopen("assign.out","w",stdout);
	cin>>t; 
	while(t--)
	{
		int n,m,v;
		cin>>n>>m>>v;
		ll ans=1,pans; 
		int tmp;bool pd=true;
		int c[m+5]; 
		for(int i=1;i<=m;i++)
		{
			if(c[tmp]!=0)
			{
				pd=false;
			}
			cin>>tmp;
			cin>>c[tmp]; 
		}
		if(!pd)
		{
			cout<<0<<'\n';
			continue;
		}
		if(n==m)
		{
			for(int x=1;x<n;x++)
			{
				ans*=((ll) (v*v-v+1)%mod);
				ans%=mod;
			}
			cout<<ans<<"\n";
			continue;
		}
		/*
		for(int i=1;i<=n-1;i++)
		{
			if(c[i]==0 && c[i+1]==0)
			{
				pans=(ll) pow(v,2)%mod;
				ans=(ans*pans)%mod;
			}
			else if(c[i]!=0 && c[i+1]!=0)
			{
				pans=(v*(v-1)+1)%mod;
				ans=(ans*pans)%mod;
			}
			if(c[i]==0 && c[i+1]==0)
			{
				pans=(ll) pow(v,2)%mod;
				ans=(ans*pans)%mod;
			}
		}*/
	}
}
