m=int(input())
graf=[]
dgraf=[]
razdaljina=[]
obidjen=[]
for i in range(210):
    graf.append([])
    dgraf.append(0)
    razdaljina.append(-1)
    obidjen.append(False)
sifre=dict()
sledeca_sifra=0
for i in range(m):
    polazni,dolazni=input().split()
    if not (polazni in sifre):
        sifre[polazni]=sledeca_sifra
        sledeca_sifra+=1
    if not (dolazni in sifre):
        sifre[dolazni]=sledeca_sifra
        sledeca_sifra+=1
    graf[sifre[polazni]].append(sifre[dolazni])
    dgraf[sifre[polazni]]+=1

n=sledeca_sifra
q=int(input())
while q>0:
    start,cilj=input().split()
    s=sifre[start]
    c=sifre[cilj]
    #bfs
    #za_obradu je red, nije niz
    za_obradu=[]
    for i in range(n):
        razdaljina[i]=-1
        obidjen[i]=False
    razdaljina[s]=0;
    obidjen[s]=True
    za_obradu.append(s)
    while len(za_obradu)>0 and (not obidjen[c]):
        #za_obradu.pop(0) uklanja nulti element(onaj na pocetku) i vraca ga
        trenutni=za_obradu.pop(0)
        for i in range(dgraf[trenutni]):
            if not obidjen[graf[trenutni][i]]:
                obidjen[graf[trenutni][i]]=True
                razdaljina[graf[trenutni][i]]=razdaljina[trenutni]+1;
                za_obradu.append(graf[trenutni][i]);
    if not obidjen[c]:
        print("ne")
    else:
        print(razdaljina[c])
    q-=1
    
