#include<iostream>
#include<vector>
using namespace std;
int N,L,K;
vector<int>fensi_of[1001];
int mindis[1001];
void dfs(int cur,int curlevel){
if(curlevel>L)return;
mindis[cur]=curlevel;
curlevel++;
for(int each:fensi_of[cur]){
if(curlevel<mindis[each])dfs(each,curlevel);
}
}
int main()
{
int i,j,k;
cin>>N>>L;
for(i=1;i<=N;i++){
cin>>j;
while(j--){
cin>>k;
fensi_of[k].emplace_back(i);
}
}
cin>>K;
while(K--){
for(i=1;i<=N;i++)mindis[i]=1000000000;
cin>>i;
dfs(i,0);
int count=0;
for(i=1;i<=N;i++){
if(mindis[i]!=1000000000)count++;
}
cout<<count-1<<endl;
}
}