#include <bits/stdc++.h>

using namespace std;

void solve() {
    int n, r, m;
    bool ok = true;
    cin >> n >> r >> m;
    
    vector<vector<int> > adj(n + 10);
    vector<bool> vis(n + 10, false);
    vector<bool> done(n + 10, false);
    vector<int> dist(n + 10, 0);
    vector<pair<int, int>> soldiers;

    while (r--) {
        int u, v;
        cin >> u >> v;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }
    while (m--) {
        int u, v;
        cin >> u >> v;
        soldiers.push_back({u, v});
    }

    for (auto it : soldiers) {
        int c = it.first;
        int s = it.second;

        queue<int> q;
        q.push(c);
        vis[c] = true; dist[c] = 0;

        while (!q.empty()) {
            int cur = q.front();
            q.pop();
            vis[cur] = true;
            if (s < dist[cur]) break;
            if (done[cur]) {
                ok = false; break;
            }
            for (int v : adj[cur]) {
                if (!vis[v]) {
                    dist[v] = dist[cur] + 1;
                    if (dist[v] <= s) vis[v] = true;
                    q.push(v);
                }
            }
            done[cur] = true;
        }

        if (!ok) break;
    }

    for (int i = 1; i <= n; i++) {
        if (!done[i]) {
            ok = false; break;
        }
    }

    cout << (ok ? "YES\n" : "NO\n");
}

int main() {
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);

    int T;
    cin >> T;
    while (T--) {
        solve();
    }
}