#include <bits/stdc++.h>
using namespace std;
long long N,M,S,s[100011],a,b,br,T,znak;
bool ex[100011],nemoze;
int komp[100011],mst[100011];
vector <int> pov[100011],izb[100011];
queue <int> q;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cin >> T;
    while(T--){
        cin >> N >> M >> S;
        for(int i=1;i<=S;i++){
            cin >> s[i];
            ex[s[i]]=1;
        }
        for(int i=1;i<=M;i++){
            cin >> a >> b;
            pov[a].push_back(b);
            pov[b].push_back(a);
            if(ex[a] && ex[b]){
            }
            else{
                izb[a].push_back(b);
                izb[b].push_back(a);
            }
        }
        if(M==N-1){
            znak=0;
            for(int i=1;i<=N;i++){
                if(ex[i]==1 && pov[i].size()>1){
                    znak=1;
                }
            }
            if(znak==1)
                cout <<-1 << endl;
            else{
                cout << M << endl;
                for(int i=1;i<=N;i++){
                    for(int j=0;j<pov[i].size();j++){
                        cout << i << " " << pov[i][j] << "\n";
                    }
                }
            }




        }

    }

    return 0;
}