#include <bits/stdc++.h>

using namespace std;

int main()
{
    ios_base::sync_with_stdio(false) ;
    cin.tie(0) ;
    int t ;
    cin >> t  ;
    while(t--){
        int n, m, s ;
        cin >> n >> m >> s ;
        int a[s] ;
        for(int i=0 ; i<s ; i++){
            cin >> a[i] ;
        }
        sort(a,a+s) ;
        int u, v ;
        vector<int> g[n+1] ;
        vector<int> x[n+1] ;
        vector<int> res[n+1] ;
        int brv=0 ;
        for(int i=0 ; i<m ; i++){
            cin >> u >> v ;
            if(!(binary_search(a,a+s,u)|| binary_search(a,a+s,v))){
                g[u].push_back(v) ;
                g[v].push_back(u) ;
            }
            else{
                x[u].push_back(v) ;
                x[v].push_back(u) ;
            }
        }
        int br=1 ;
        int node ;
        for(int i=1 ; i<=n ; i++){
            if(!binary_search(a,a+s,i)){
                node=i ;
                break ;
            }
        }
        int vis[n+1]={0} ;
        vis[node]=1 ;
        queue<int> q ;
        q.push(node) ;
        while(!q.empty()){
            node=q.front() ;
            q.pop() ;
            for(auto c : g[node]){
                if(vis[c]==0){
                    res[node].push_back(c) ;
                    brv++ ;
                    vis[c]=1 ;
                    br++ ;
                    q.push(c) ;
                }
            }
        }
        if(br!=n-s){
            cout << -1 << endl ;
            continue ;
        }
        else{

            int b=0 ;
            for(int i=0 ; i<s ; i++){
                b=0 ;
                for(auto j: x[a[i]]){
                    if(!binary_search(a,a+s,j)){
                        res[a[i]].push_back(j) ;
                        b=1 ;
                        brv++ ;
                        break ;
                    }
                }
                if(b==0){
                    break ;
                }
            }
            if(b==0){
                cout << -1 << endl ;
            }
            else{
                cout << brv << endl ;
                for(int i=1 ; i<=n ; i++){
                    for(auto j : res[i]){
                        cout << i << " " << j << endl ;
                    }
                }
            }
        }

    }
    return 0;
}