#include <bits/stdc++.h>
#define LL long long
#define fu(x , y , z) for(int x = y ; x <= z ; x ++)
using namespace std;
const LL mod = 1e9 + 7;
LL ans;
map<int , int> mp;
int n , m , v;
LL ksm (LL x , LL y) {
    LL z = 1;
    while (y) {
        if (y & 1) z = z * x % mod;
        x = x * x % mod;
        y >>= 1;
    }
    return z;
}
// int a[N];
// int b[N];
// void dfs (int x) {
//     if (x > n) {
//         ans = (ans + n - 1) % mod;
//     }
//     else {
//         if (mp[x]) dfs (x + 1);
//         else {
//             dfs (x + 1);
//             dfs (x + 1);
//         }
//     }
// }
int main () {
    // freopen ("a.in" , "r" , stdin);
    freopen ("assign.in" , "r" , stdin);
    freopen ("assign.out" , "w" , stdout);
    int T , flg;
    scanf ("%d" , &T);
    // T = 4;

    while (T --) {
        ans = 1;
        mp.clear();
        flg = 0;
        scanf ("%d%d%d" , &n , &m , &v);
        // cout << m << "\n";
        fu (i , 1 , m) {
            int x , y;
            scanf ("%d%d" , &x , &y);
            if (mp[x] && mp[x] != y) {
                flg = 1;
            }
            mp[x] = y;
        }
        if (flg) {
            puts ("0");
            continue;
        }
        // if (n <= 12 && m <= 12 && v <= 2) {
        //     ans = 0;
        //     dfs (1);
        //     ans = (ans + ksm (2 , n - 1)) % mod;
        //     printf ("%lld\n" , ans);
        //     continue;
        // }
        LL s1 = 0;
        for (auto i : mp) 
            if (mp[i.first - 1]) s1 ++;
        LL s2 = n - 1 - s1;
        ans = ans * ksm ((1 + (v - 1) * v % mod) % mod , s1) % mod;
        ans = ans * ksm (v * v % mod , s2) % mod;
        // fu (i , 1 , n - 1) {
        //     if (mp[i] && mp[i + 1]) ans = ans * ((1 + (v - 1) * v % mod) % mod) % mod;
        //     else if (mp[i] && !mp[i + 1]) ans = ans * v % mod * v % mod;
        //     else if (!mp[i] && mp[i + 1]) ans = ans * v % mod * v % mod;
        //     else ans = ans * v % mod * v % mod;
        // }
        printf ("%lld\n" , ans);
    }
    return 0;
}