#include<queue>
#include <map>
#include<iostream>
#include<cstring>
using namespace std;
typedef pair<int,int> P;

queue<P> qu;

int main()
{
  int table[200][200];
  int n;
  cin>>n;
  for(int x=0;x<n;x++) // ノード数
    {
      int r;   // ノード番号
      int k;   // rにつながるノード数
      cin>>r>>k;
      for(int i=0;i<k;i++)
	{
	  int t; // rにつながるノード番号
	  cin>>t;
	  table[r][t]=1;
	}
    }
  int p;
  cin>>p;
  for(int x=0;x<p;x++)
    {
      int s,d,v;
      cin>>s>>d>>v;
      int ans = -1;
      queue<P> qu;
      int c[200];
      memset(c,-1,sizeof(c));  //経路到達情報の初期化
      if(v>1)                   //TTLが1のときは追加しない
	for(int i=0;i<200;i++)
	  if(table[s][i]==1)    //s->iの経路があればキューに追加
	    qu.push(P(i,2));
       
      while(!qu.empty()) {     //キューが空になるまで続ける
	P a = qu.front(); qu.pop(); //キューの先頭を取出
	//	cout<<a.first<<"  "<<a.second<<endl;
	//a.firstがゴールなら、終了
	if(a.first==d) { ans=a.second;break; }
	if(a.second+1<=v) { // パケットのTTLが0にならないとき
	  for(int i=0;i<200;i++) {
	    //隣接かつ今までそのノードに到達していなければキューに追加
	    if(table[a.first][i]==1 && c[i]==-1) {
	      c[i] = 1;
	      qu.push(P(i,a.second+1));
	    }
	  }
	}
	
      }
      if(ans!=-1)
	cout<<ans<<endl;
      else
	cout<<"NA"<<endl;
      
    }
  

  

}