#include <stdio.h>
#include <stdlib.h>

typedef struct mostTip{
    int var1;
    int var2;
}mostTip;

int imaViseOdJedneVeze(mostTip niz[100000], int sputani[],int brojMostova, int brojSputanih){

    for(int i=0; i<brojSputanih;i++){
        int brojac=0;
        for(int j=0; j<brojMostova;j++){
            if(niz[j].var1==sputani[i] || niz[j].var2==sputani[i]) brojac++;
            if(brojac>1)
                return 1;
        }
    }return 0;
}

int main()
{
    int brojPonavljanja;
    scanf("%d", &brojPonavljanja);

    for(int i=0;i<brojPonavljanja;i++){
        int brojOsoba, brojMostova, brojSputanih;

        scanf("%d %d %d", &brojOsoba, &brojMostova, &brojSputanih);
        int sputani[brojSputanih];
        for(int i=0;i<brojSputanih;i++){
            scanf("%d",&sputani[i]);
        }
        mostTip mostovi[brojMostova];
        for(int i=0; i<brojMostova;i++){
            scanf("%d%d",&mostovi[i].var1,&mostovi[i].var2);
        }
        if(brojOsoba-1==brojMostova && imaViseOdJedneVeze(mostovi, sputani, brojMostova, brojSputanih)){
            printf("%d\n",brojMostova);
            for(int i=0;i<brojMostova;i++){
                printf("%d %d",mostovi[i].var1,mostovi[i].var2);
            }
        }
        else{
            printf("-1\n");
        }
    }
    return 0;
}