#include <iostream>
#include <set>
#include <cstdio>
#include <cstring>
using namespace std;
#define MAXN 201
int a[MAXN][MAXN];
bool isClique(int K,int t[]){
for(int i=0;i<K;i++){
for(int j=0;j<K;j++){
if(j==i){
continue;
}
if(a[t[i]][t[j]]!=1){
return false;
}
}
}
return true;
}
bool isMaximal(int vexn,int K,int t[]){
set<int> ts;
for(int i=0;i<K;i++){
ts.insert(t[i]);
}
for(int i=1;i<=vexn;i++){
if(ts.count(i)==1){
continue;
}
int flag=1;
for(int j=0;j<K;j++){
flag*=a[t[j]][i];
if(flag==0){
break;
}
}
if(flag){
return false;
}
}
return true;
}
int main()
{
int vexn,edgen;
scanf("%d %d",&vexn,&edgen);
memset(a,0,sizeof(a));
for(int i=0;i<edgen;i++){
int head,tail;
scanf("%d %d",&head,&tail);
a[head][tail]=1;
a[tail][head]=1;
}
int Q;
scanf("%d",&Q);
int t[MAXN];
while(Q--){
int K;
scanf("%d",&K);
for(int i=0;i<K;i++){
scanf("%d",&t[i]);
}
if(!isClique(K,t)){
printf("Not a Clique\n");
}else if(!isMaximal(vexn,K,t)){
printf("Not Maximal\n");
}else{
printf("Yes\n");
}
}
}