link
int N,M;
int ind[1001];
int le[1001];
int main(){
cin>>N>>M;
vector<vector<int>> adj(N+1);
for(int i=0;i<M;i++){
int u,v;
cin>>u>>v;
ind[v]++;
adj[u].push_back(v);
}
int K;
cin>>K;
vector<int> res;
for(int i=0;i<K;i++){
bool valid=true;
int tmpind[1001];
for(int j=1;j<=N;j++) tmpind[j]=ind[j];
for(int j=1;j<=N;j++){
int a;
cin>>a;
if(tmpind[a]>0){
valid=false;
}
for(int n:adj[a]){
tmpind[n]--;
}
}
if(!valid) res.push_back(i);
}
for(int i=0;i<res.size();i++){
if(i>0) printf(" ");
printf("%d", res[i]);
}
return 0;
}