#include #define MAXN 100005 using namespace std; int n, e, p; vector g[MAXN]; int status[MAXN]; vector pozicije; int visited[MAXN]; int identifier = 1; void flood(int pos){ visited[pos] = identifier; for(auto const &u: g[pos]){ if(visited[u] == identifier)continue; if(status[u] != identifier)continue; flood(u); } } int main() { memset(status, 0, sizeof(status)); memset(visited, 0, sizeof(visited)); cin >> n >> e >> p; for(int i=0; i < e; i++){ int u, v; cin >> u >> v; g[u].push_back(v); g[v].push_back(u); } for(int prop=0; prop < p; prop++){ int result = 0; int M; cin >> M; pozicije.clear(); for(int i=0; i < M; i++){ int u; cin >> u; status[u] = identifier; pozicije.push_back(u); } for(auto const &pos: pozicije){ if(visited[pos] == identifier)continue; flood(pos); result++; } cout << result << endl; identifier++; } return 0; }