#include<cstdio>
#include<algorithm>

#define INF 1000000000

using namespace std;

int N;
int cost[128][128];
int d[128];
bool used[128];

void dijkstra(int s){
	//ツ渉可甘コツ可サ
	for(int i= 0; i < 128; i++){
		d[i] = INF;
		used[i] = false;
	}
	
	d[s] = 0;
	
	while(true){
		int v = -1;
		
		for(int i = 1; i <= N; i++){
			if(!used[i] && (v == -1 || d[i] < d[v]))v = i;
		}
		
		if(v == -1)break;
		
		used[v] = true;
		
		for(int i = 1; i <= N; i++){
			d[i] = min(d[i],d[v] + cost[v][i]);
		}
	}
}
	





int main(void){
	
	while(scanf("%d", &N) != EOF){
		int P;
		int r1,k1,t;
		int s1,d1,v1;
		
		for(int i = 0; i < 128; i++){
			for(int j = 0; j < 128; j++){
				cost[i][j] = INF;
			}
		}
		
		//ツδ仰ーツタツづ個禿偲ヲ
		for(int i = 0; i < N; i++){
			scanf("%d %d", &r1, &k1);
			for(int j = 0; j < k1; j++){
				scanf("%d", &t);
				cost[r1][t]=1;
			}
		}
		
		//ツパツケツッツトツづ個禿偲ヲ
		scanf("%d", &P);
		for(int i = 0; i < P; i++){
			scanf("%d%d%d", &s1, &d1, &v1);
			dijkstra(s1);
			
//			for(int j = 1; j < N; j++)printf("%d\n", d[i]);
			if(v1 - d[d1] > 0){
				printf("%d\n",d[d1]+1);
			}else {
				puts("NA");
			}
		}
	}
	return 0;
}