#include <bits/stdc++.h>
#define ll long long
#define sti string
#define bit(n,i) ((n>>i) &1)
#define itachi ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define maxn 2000005
#define fi first
#define se second
#define i18 __int128_t
 
 
using namespace std;
 
int n,m;
ll f[75][205];
 
int main()
{
    itachi
    cin>>n>>m;
    for(int i=1;i<=m;i++){
        int u,v;
        cin>>u>>v;
        f[u][0] |= (1LL<<(v-1));
    }
    for(int j=1;j<=60;j++){
        for(int u=1;u<=n;u++){
            ll cur=f[u][j-1];
            ll mask=0;
            while(cur){
                int v=__builtin_ctzll(cur);
                cur &=(cur-1);
                mask |= f[v+1][j-1];
            }
            f[u][j]=mask;
        }
    }
 
    int q;cin>>q;
    while(q--){
        int k; cin>>k;
        vector<int> s(k);
        for(int i=0;i<k;i++) cin>>s[i];
        vector<ll> reach(k);
        for(int i=0;i<k;i++) reach[i] = (1LL<<(s[i]-1));
        ll meet = (1LL << n) - 1;
        for(int i = 0; i < k; i++) meet &= reach[i];
        if(meet) { cout << 0 << '\n'; continue; }
        ll Time=0;
        vector<ll> cur=reach;
        for(int b=60;b>=0;b--){
            vector<ll> nxt(k,0);
            for(int i=0;i<k;i++){
                ll curr=cur[i];
                ll newmask=0;
                while(curr){
                    int u=__builtin_ctzll(curr);
                    curr &=(curr-1);
                    newmask |= f[u+1][b];
                }
                nxt[i]=newmask;
            }
            ll meet=-1;
            for(int i=0;i<k;i++) meet &= nxt[i];
            if(meet==0){
               Time+=(1LL<<b);
               cur.swap(nxt);
            }
        }
        vector<ll> nxt(k);
        for(int i = 0; i < k; i++) {
            ll mask = cur[i], newmask = 0;
            while(mask) {
                int u = __builtin_ctzll(mask);
                mask &= (mask-1);
                newmask |= f[u+1][0];
            }
            nxt[i] = newmask;
        }
 
        meet = (1LL << n) - 1;
        for(int i = 0; i < k; i++) meet &= nxt[i];
 
        if(meet) cout << Time + 1 << '\n';
        else cout << -1 << '\n';
    }
    return 0;
}
 
				I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgc3RpIHN0cmluZwojZGVmaW5lIGJpdChuLGkpICgobj4+aSkgJjEpCiNkZWZpbmUgaXRhY2hpIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKI2RlZmluZSBtYXhuIDIwMDAwMDUKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIGkxOCBfX2ludDEyOF90CgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBuLG07CmxsIGZbNzVdWzIwNV07CgppbnQgbWFpbigpCnsKICAgIGl0YWNoaQogICAgY2luPj5uPj5tOwogICAgZm9yKGludCBpPTE7aTw9bTtpKyspewogICAgICAgIGludCB1LHY7CiAgICAgICAgY2luPj51Pj52OwogICAgICAgIGZbdV1bMF0gfD0gKDFMTDw8KHYtMSkpOwogICAgfQogICAgZm9yKGludCBqPTE7ajw9NjA7aisrKXsKICAgICAgICBmb3IoaW50IHU9MTt1PD1uO3UrKyl7CiAgICAgICAgICAgIGxsIGN1cj1mW3VdW2otMV07CiAgICAgICAgICAgIGxsIG1hc2s9MDsKICAgICAgICAgICAgd2hpbGUoY3VyKXsKICAgICAgICAgICAgICAgIGludCB2PV9fYnVpbHRpbl9jdHpsbChjdXIpOwogICAgICAgICAgICAgICAgY3VyICY9KGN1ci0xKTsKICAgICAgICAgICAgICAgIG1hc2sgfD0gZlt2KzFdW2otMV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZlt1XVtqXT1tYXNrOwogICAgICAgIH0KICAgIH0KCiAgICBpbnQgcTtjaW4+PnE7CiAgICB3aGlsZShxLS0pewogICAgICAgIGludCBrOyBjaW4+Pms7CiAgICAgICAgdmVjdG9yPGludD4gcyhrKTsKICAgICAgICBmb3IoaW50IGk9MDtpPGs7aSsrKSBjaW4+PnNbaV07CiAgICAgICAgdmVjdG9yPGxsPiByZWFjaChrKTsKICAgICAgICBmb3IoaW50IGk9MDtpPGs7aSsrKSByZWFjaFtpXSA9ICgxTEw8PChzW2ldLTEpKTsKICAgICAgICBsbCBtZWV0ID0gKDFMTCA8PCBuKSAtIDE7CiAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGs7IGkrKykgbWVldCAmPSByZWFjaFtpXTsKICAgICAgICBpZihtZWV0KSB7IGNvdXQgPDwgMCA8PCAnXG4nOyBjb250aW51ZTsgfQogICAgICAgIGxsIFRpbWU9MDsKICAgICAgICB2ZWN0b3I8bGw+IGN1cj1yZWFjaDsKICAgICAgICBmb3IoaW50IGI9NjA7Yj49MDtiLS0pewogICAgICAgICAgICB2ZWN0b3I8bGw+IG54dChrLDApOwogICAgICAgICAgICBmb3IoaW50IGk9MDtpPGs7aSsrKXsKICAgICAgICAgICAgICAgIGxsIGN1cnI9Y3VyW2ldOwogICAgICAgICAgICAgICAgbGwgbmV3bWFzaz0wOwogICAgICAgICAgICAgICAgd2hpbGUoY3Vycil7CiAgICAgICAgICAgICAgICAgICAgaW50IHU9X19idWlsdGluX2N0emxsKGN1cnIpOwogICAgICAgICAgICAgICAgICAgIGN1cnIgJj0oY3Vyci0xKTsKICAgICAgICAgICAgICAgICAgICBuZXdtYXNrIHw9IGZbdSsxXVtiXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIG54dFtpXT1uZXdtYXNrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxsIG1lZXQ9LTE7CiAgICAgICAgICAgIGZvcihpbnQgaT0wO2k8aztpKyspIG1lZXQgJj0gbnh0W2ldOwogICAgICAgICAgICBpZihtZWV0PT0wKXsKICAgICAgICAgICAgICAgVGltZSs9KDFMTDw8Yik7CiAgICAgICAgICAgICAgIGN1ci5zd2FwKG54dCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdmVjdG9yPGxsPiBueHQoayk7CiAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGs7IGkrKykgewogICAgICAgICAgICBsbCBtYXNrID0gY3VyW2ldLCBuZXdtYXNrID0gMDsKICAgICAgICAgICAgd2hpbGUobWFzaykgewogICAgICAgICAgICAgICAgaW50IHUgPSBfX2J1aWx0aW5fY3R6bGwobWFzayk7CiAgICAgICAgICAgICAgICBtYXNrICY9IChtYXNrLTEpOwogICAgICAgICAgICAgICAgbmV3bWFzayB8PSBmW3UrMV1bMF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbnh0W2ldID0gbmV3bWFzazsKICAgICAgICB9CgogICAgICAgIG1lZXQgPSAoMUxMIDw8IG4pIC0gMTsKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgazsgaSsrKSBtZWV0ICY9IG54dFtpXTsKCiAgICAgICAgaWYobWVldCkgY291dCA8PCBUaW1lICsgMSA8PCAnXG4nOwogICAgICAgIGVsc2UgY291dCA8PCAtMSA8PCAnXG4nOwogICAgfQogICAgcmV0dXJuIDA7Cn0K