#include using namespace std; const int N_MAX = 1000; bool G[N_MAX][N_MAX]; bool reversed[N_MAX]; int n; // vertices int k; // reversals void read() { cin >> n >> k; int m = (n*(n-1)) / 2; for( int i = 0; i < m; ++i ) { int u, v; cin >> u >> v; G[u][v] = true; } } bool is_hub( int x ) { for( int i = 0; i < n; ++i ) { if( i != x ) { if( reversed[x] ^ reversed[i] ) { if( !G[x][i] == false ) return false; } else { if( G[x][i] == false ) return false; } } } return true; } int find_hub() { int h = 0; // potential hub for( int i = 1; i < n; ++i ) { if( reversed[h] ^ reversed[i] ) { if( !G[h][i] == false ) h = i; } else { if( G[h][i] == false ) h = i; } } if( is_hub( h ) ) return h; else return -1; } void process_rev( int p ) { for( int i = 0; i < p; ++i ) { int x; cin >> x; reversed[x] = !reversed[x]; } } void reset() { for( int i = 0; i < N_MAX; ++i ) { for( int j = 0; j < N_MAX; ++j ) G[i][j] = 0; } } int main() { ios_base::sync_with_stdio( false ); cin.tie(); read(); while( k-- ) { int p; cin >> p; process_rev( p ); int h = find_hub(); cout << h << endl; } return 0; }