#include <bits/stdc++.h>

using namespace std;

int main()
{
    cin.tie(0);
    ios_base::sync_with_stdio(false);

    int t;

    cin>>t;

    int n,m,s;
    while(t--){
        cin>>n>>m>>s;

        vector<int> targets(s);

        for(int i=0;i<s;i++){
            cin>>targets[i];
            targets[i]--;
        }
        sort(targets.begin(),targets.end());

        vector<pair<int,int>> a(m);

        int x,y;
        for(int i=0;i<m;i++){
            cin>>x>>y;
            x--;
            y--;
            a[i] = {x,y};
        }

        vector<bool> imamo(n,false);
        vector<pair<int,int>> ans;

        for(int i =0;i<m;i++){

            int prvi = a[i].first;
            int drugi = a[i].second;

            bool prvi_target = (binary_search(targets.begin(),targets.end(), a[i].first));
            bool drugi_target = (binary_search(targets.begin(),targets.end(), a[i].second));

            if(prvi_target && drugi_target){
                continue;
            }

            if(imamo[prvi] && prvi_target){
                continue;
            }

            if(imamo[drugi] && prvi_target){
                continue;
            }

            if(imamo[prvi] && imamo[drugi]){
                continue;
            }

            imamo[prvi] = true;
            imamo[drugi] = true;
            ans.push_back({prvi,drugi});
        }

        if(ans.size() == n-1){
            cout<<ans.size()<<'\n';

            for(auto z : ans){
                cout<<z.first+1<<" "<<z.second+1<<'\n';
            }
        }else{
            cout<<"-1"<<'\n';
        }


    }

    return 0;
}