#include<iostream>
#define int long long
const int N=1e8+10;
const int mod=1e9+7;
const int INF=0x3f3f3f3f;
using namespace std;
int T,n,m,v,a[N];
signed main()
{
	freopen("assign.in","r",stdin);
	freopen("assign.out","w",stdout);
	cin>>T;
	while(T--)
	{
		int sum=0,f=1;
		cin>>n>>m>>v;
		for(int i=1;i<=m;i++)
		{
			int q1,w1;
			cin>>q1>>w1;
			if(a[q1]&&a[q1]!=w1)
			{
				cout<<0<<endl;
				f=0;
				break;
			}
			a[q1]=w1;
		}
		if(!f)
		{
			continue;
		}
		for(int i=1;i<=v;i++)
		{
			for(int j=1;j<v;j++)
			{
				if(a[i]==i&&a[i+1]==0)
				{
					sum++;
				}
				if(a[i]==i&&a[i+1]!=j)
				{
					continue;
				}
				sum++;
			}
		}
		sum+=v;
		int num=1;
		for(int i=1;i<n;i++)
		{
			num*=sum;
			num%=mod;
		}
		cout<<num%mod<<endl;
	}
	return 0;
}
