#include <bits/stdc++.h>
using namespace std;
const long long N=1000000007;
long long n,m,j,a[100010];
int main()
{
	ifstream in("assign.in");
	ofstream out("assign.out");
	int T;
	in>>T;
	while(T--)
	{
		in>>n>>m>>j;
		int p=1;
		for(int i=1;i<=m;i++)
		{
			int x,y;
			in>>x>>y;
			if(a[x]!=0&&a[x]!=y)
			{
				p=0;
				break;
			}
			a[x]=y;
		}
		if(!p)
		{
			cout<<0;
			continue;
		}
		if(m==1)
		{
			int ans=(j*j)%N;
			for(int i=1;i<n-1;i++)
			{
				ans%=N;
				ans*=j*j;
			}
			out<<ans%N<<endl;
		}
		if(n==m)
		{
			int ans=(j*j-j+1)%N;
			for(int i=1;i<n-1;i++)
			{
				ans=(ans*(j*j-j+1))%N;;
			}
			out<<ans%N<<endl;
		}
	}
}
