#include <iostream>
#include <algorithm> // max, min

using namespace std;

const int AllaySize = 1000;
const int Limit = 999999;

int N, P;
int ConnectR[AllaySize][AllaySize];
int InitTTL;
//int Ans[AllaySize][AllaySize];

void war(void) {
  for(int k=1; k<N+1; k++) {
    for(int i=1; i<N+1; i++) {
      for(int j=1; j<N+1; j++) {
	ConnectR[i][j]=min(ConnectR[i][j], ConnectR[i][k]+ConnectR[k][j]);
      }
    }
  } 
}

int main(void) {
  for(int i=0; i<AllaySize; i++) {
    for(int j=0; j<AllaySize; j++) {
      ConnectR[i][j]=Limit;
      // Ans[i][j]=Limit;
    }
  }

  cin>>N;
  for(int i=0; i<N; i++) { // ルータの接続情報
    int k;
    int from, to;
    cin>>from;
    cin>>k;
    for(int j=0; j<k; j++) {
      cin>>to;
      ConnectR[from][to] = 1; // 通過可能
    }
  }

  war();
  cin>>P;
  for(int i=0; i<P; i++) {
    int from, to;
    cin>>from;
    cin>>to;
    cin>>InitTTL;
    if(ConnectR[from][to] < InitTTL) {
      cout<<ConnectR[from][to]+1<<endl; // ?????
    }
    else {
      cout<<"NA"<<endl;
    }
  }
  /*
  for(int i=0; i<N; i++)
    for(int j=0; j<N; j++)
      cout<<ConnectR[i][j]<<" ";
  */
}