2565_1_Quiz_3_2

Max Score = 100


6530107121
# 1679733, 2022-11-12 10:24:57, xxxx (0%)

n,m,k = [int(e) for e in input().split()]
facs = {}
facultys = {}
for i in range(n):
    person,fac = input().split()
    if fac not in facs:
        facs[fac] = {person}
    else:
        facs[fac].add(person)
    if fac not in facultys:
        facultys[fac] = set()
for i in range(m):
    v = input().split()
    visit = v[0]
    pers = v[1:]
    for e in pers:
        for k in facs:
            if e in facs[k]:
                facultys[k].add(visit)
c = 0
while c != k:
    a = set(input().split())
    p = []
    for e in facultys:
         len(a&facultys[e]) 
    if len(p) == 0:
        print('None')
    else:
        print(' '.join(p))
    c += 1
        

# 1679776, 2022-11-12 10:27:19, xxxx (0%)

n,m,k = [int(e) for e in input().split()]
facs = {}
facultys = {}
for i in range(n):
    person,fac = input().split()
    if fac not in facs:
        facs[fac] = {person}
    else:
        facs[fac].add(person)
    if fac not in facultys:
        facultys[fac] = set()
for i in range(m):
    v = input().split()
    visit = v[0]
    pers = v[1:]
    for e in pers:
        for k in facs:
            if e in facs[k]:
                facultys[k].add(visit)
c = 0
while c != k:
    a = set(input().split())
    p = []
    for e in facultys:
         if len(a&facultys[e]) >= 2:
             p.append(e)
    if len(p) == 0:
        print('None')
    else:
        print(' '.join(p))
    c += 1
        

# 1679805, 2022-11-12 10:28:36, xxxx (0%)

n,m,k = [int(e) for e in input().split()]
facs = {}
facultys = {}
for i in range(n):
    person,fac = input().split()
    if fac not in facs:
        facs[fac] = {person}
    else:
        facs[fac].add(person)
    if fac not in facultys:
        facultys[fac] = set()
for i in range(m):
    v = input().split()
    visit = v[0]
    pers = v[1:]
    for e in pers:
        for k in facs:
            if e in facs[k]:
                facultys[k].add(visit)
c = 0
while c != k:
    a = set(input().split())
    p = []
    for e in facultys:
         if a <= facultys[e]:
             p.append(e)
    if len(p) == 0:
        print('None')
    else:
        print(' '.join(p))
    c += 1
        

# 1679982, 2022-11-12 10:36:18, xxxx (0%)

n,m,k = [int(e) for e in input().split()]
facs = {}
facultys = {}
for i in range(n):
    person,fac = input().split()
    if fac not in facs:
        facs[fac] = {person}
    else:
        facs[fac].add(person)
    if fac not in facultys:
        facultys[fac] = set()
for i in range(m):
    v = input().split()
    visit = v[0]
    pers = v[1:]
    for e in pers:
        for k in facs:
            if e in facs[k]:
                facultys[k].add(visit)
c = 0
while c != k:
    a = set(input().split())
    p = []
    for e in facultys:
         if a <= facultys[e]:
             p.append(e)
    if len(p) == 0:
        print('None')
    else:
        print(' '.join(p))
    c += 1
# 1680012, 2022-11-12 10:37:46, xxxx (0%)

n,m,k = [int(e) for e in input().split()]
facs = {}
facultys = {}
for i in range(n):
    person,fac = input().split()
    if fac not in facs:
        facs[fac] = {person}
    else:
        facs[fac].add(person)
    if fac not in facultys:
        facultys[fac] = set()
for i in range(m):
    v = input().split()
    visit = v[0]
    pers = v[1:]
    for e in pers:
        for k in facs:
            if e in facs[k]:
                facultys[k].add(visit)
c = 0
while c != k:
    a = set(input().split())
    p = []
    for e in facultys:
         if a <= facultys[e]:
             p.append(e)
    if len(p) == 0:
        print('None')
    else:
        print(' '.join(sorted(p)))
    c += 1
# 1680113, 2022-11-12 10:42:11, xxxx (0%)

n,m,k = [int(e) for e in input().split()]
facs = {}
facultys = {}
for i in range(n):
    person,fac = input().split()
    if fac not in facs:
        facs[fac] = {person}
    else:
        facs[fac].add(person)
    if fac not in facultys:
        facultys[fac] = set()
for i in range(m):
    v = input().split()
    visit = v[0]
    pers = v[1:]
    for e in pers:
        for k in facs:
            if e in facs[k]:
                facultys[k].add(visit)
c = 0
while c != k:
    a = set(input().split())
    p = []
    for e in facultys:
         if a <= facultys[e]:
             p.append(e)
         else: break
        
    if len(p) == 0:
        print('None')
    else:
        print(' '.join(sorted(p)))
    c += 1

# 1680302, 2022-11-12 10:51:37, xxxx (0%)

n,m,k = [int(e) for e in input().split()]
facs = {}
facultys = {}
for i in range(n):
    person,fac = input().split()
    if fac not in facs:
        facs[fac] = {person}
    else:
        facs[fac].add(person)
    if fac not in facultys:
        facultys[fac] = set()
for i in range(m):
    v = input().split()
    visit = v[0]
    pers = v[1:]
    for e in pers:
        for g in facs:
            if e in facs[g]:
                facultys[g].add(visit)
print(facultys)
c = 0
a = set(input().split())
while c != k:
    p = []
    for e in facultys:
        if a <= facultys[e]:
             p.append(e)
    if len(p) == 0:
        print('None')
    else:
        print(' '.join(sorted(p)))
    c += 1
    a = set(input().split())


# 1680316, 2022-11-12 10:52:11, xxxx (0%)

n,m,k = [int(e) for e in input().split()]
facs = {}
facultys = {}
for i in range(n):
    person,fac = input().split()
    if fac not in facs:
        facs[fac] = {person}
    else:
        facs[fac].add(person)
    if fac not in facultys:
        facultys[fac] = set()
for i in range(m):
    v = input().split()
    visit = v[0]
    pers = v[1:]
    for e in pers:
        for g in facs:
            if e in facs[g]:
                facultys[g].add(visit)

c = 0
a = set(input().split())
while c != k:
    p = []
    for e in facultys:
        if a <= facultys[e]:
             p.append(e)
    if len(p) == 0:
        print('None')
    else:
        print(' '.join(sorted(p)))
    c += 1
    a = set(input().split())


# 1680356, 2022-11-12 10:53:25, xxxx (0%)

n,m,k = [int(e) for e in input().split()]
facs = {}
facultys = {}
for i in range(n):
    person,fac = input().split()
    if fac not in facs:
        facs[fac] = {person}
    else:
        facs[fac].add(person)
    if fac not in facultys:
        facultys[fac] = set()
for i in range(m):
    v = input().split()
    visit = v[0]
    pers = v[1:]
    for e in pers:
        for g in facs:
            if e in facs[g]:
                facultys[g].add(visit)

c = 0
a = set(input().split())
while c != k:
    p = []
    for e in facultys:
        if a <= facultys[e]:
             p.append(e)
    if len(p) == 0:
        print(None)
    else:
        print(' '.join(sorted(p)))
    c += 1
    a = set(input().split())


# 1680410, 2022-11-12 10:54:58, xxxx (0%)

n,m,k = [int(e) for e in input().split()]
facs = {}
facultys = {}
for i in range(n):
    person,fac = input().strip().split()
    if fac not in facs:
        facs[fac] = {person}
    else:
        facs[fac].add(person)
    if fac not in facultys:
        facultys[fac] = set()
for i in range(m):
    v = input().strip().split()
    visit = v[0]
    pers = v[1:]
    for e in pers:
        for g in facs:
            if e in facs[g]:
                facultys[g].add(visit)

c = 0
a = set(input().strip().split())
while c != k:
    p = []
    for e in facultys:
        if a <= facultys[e]:
             p.append(e)
    if len(p) == 0:
        print(None)
    else:
        print(' '.join(sorted(p)))
    c += 1
    a = set(input().split())
# 1680418, 2022-11-12 10:55:10, xxxx (0%)

n,m,k = [int(e) for e in input().split()]
facs = {}
facultys = {}
for i in range(n):
    person,fac = input().strip().split()
    if fac not in facs:
        facs[fac] = {person}
    else:
        facs[fac].add(person)
    if fac not in facultys:
        facultys[fac] = set()
for i in range(m):
    v = input().strip().split()
    visit = v[0]
    pers = v[1:]
    for e in pers:
        for g in facs:
            if e in facs[g]:
                facultys[g].add(visit)

c = 0
a = set(input().strip().split())
while c != k:
    p = []
    for e in facultys:
        if a <= facultys[e]:
             p.append(e)
    if len(p) == 0:
        print(None)
    else:
        print(' '.join(sorted(p)))
    c += 1
    a = set(input().strip().split())
# 1680457, 2022-11-12 10:56:57, PPPP (100%)

n,m,k = [int(e) for e in input().split()]
facs = {}
facultys = {}
for i in range(n):
    person,fac = input().strip().split()
    if fac not in facs:
        facs[fac] = {person}
    else:
        facs[fac].add(person)
    if fac not in facultys:
        facultys[fac] = set()
for i in range(m):
    v = input().strip().split()
    visit = v[0]
    pers = v[1:]
    for e in pers:
        for g in facs:
            if e in facs[g]:
                facultys[g].add(visit)

for j in range(k):
    a = set(input().split())
    p = []
    for e in facultys:
        if a <= facultys[e]:
             p.append(e)
    if len(p) == 0:
        print(None)
    else:
        print(' '.join(sorted(p)))

6530210021
# 1679608, 2022-11-12 10:20:07, ---- (0%)

N,M,K = [int(e) for e in input().split()]

d = {} # {name:faculty}
d2 = {} # {visitor:[name]}
ls = [] #
ls2 = []
ls3 = []
output = [] # [faculty,None,...]
count = 0
for i in range(N):
    name,faculty = input().split()
    d[name] = faculty
    
for i in range(M):
    x = input().split()
    visitor = x[0]
    x = x[1:]
    for e in x:
        ls2.append(d[e])
    d2[visitor] = set(ls2)
    ls2 = []
    
for i in range(K):
    x = input().split()
    c = d2[x[0]]
    for i in range(1,len(x)):
        c = c.intersection(d2[x[i]])
    if c == set():
        output.append('None')
    else:
        for faculty in c:
            ls3.append(faculty)
        output.append(ls3)
    
for e in output:
    if e == 'None':
        print('None')
    elif len(e) > 1 and e != 'None':
        print(' '.join(e))
    else:
        print(e[0])
# 1679644, 2022-11-12 10:21:55, ---- (0%)

N,M,K = [int(e) for e in input().split()]

d = {} # {name:faculty}
d2 = {} # {visitor:[name]}
ls = [] #
ls2 = []
ls3 = []
output = [] # [faculty,None,...]
count = 0
for i in range(N):
    name,faculty = input().split()
    d[name] = faculty
    
for i in range(M):
    x = input().split()
    visitor = x[0]
    x = x[1:]
    for e in x:
        ls2.append(d[e])
    d2[visitor] = set(ls2)
    ls2 = []
    
for i in range(K):
    x = input().split()
    c = d2[x[0]]
    for i in range(1,len(x)):
        c = c.intersection(d2[x[i]])
    if c == set():
        output.append('None')
    else:
        for faculty in c:
            ls3.append(faculty)
        output.append(ls3)
    
for e in output:
    if e == 'None':
        print('None')
    elif len(e) > 1 and e != 'None':
        e = sorted(e)
        print(' '.join(e))
    else:
        print(e[0])
        

# 1679871, 2022-11-12 10:30:46, ---- (0%)

N,M,K = [int(e) for e in input().split()]

d = {} # {name:faculty}
d2 = {} # {visitor:[name]}
ls = [] #
ls2 = []
ls3 = []
output = [] # [faculty,None,...]
for i in range(N):
    name,faculty = input().split()
    d[name] = faculty
    
for i in range(M):
    x = input().split()
    visitor = x[0]
    x = x[1:]
    for e in x:
        ls2.append(d[e])
    d2[visitor] = set(ls2)
    ls2 = []
    
for i in range(K):
    x = input().split()
    c = d2[x[0]]
    for i in range(1,len(x)):
        c = c.intersection(d2[x[i]])
    if c == set():
        output.append('None')
    else:
        for faculty in c:
            ls3.append(faculty)
        output.append(ls3)
    
for e in output:
    if e == 'None':
        print(e)
    elif len(e) > 1 and e != 'None':
        e = sorted(e)
        print(' '.join(e))
    else:
        print(e[0])
        

# 1680373, 2022-11-12 10:53:56, P-x- (25%)

N,M,K = [int(e) for e in input().split()]
d = {} # {name:faculty}
d2 = {} # {ชื่อแขก:{set of คณะที่แขกมาหา}}
ls = [] # list ของ คณะที่แขกมาหา
ls2 = [] # set ของคณะของแขกที่เราสนใจ
c = set()
output = []
for i in range(N):
    name,faculty = input().split()
    d[name] = faculty

for i in range(M):
    x = input().split()
    visitor = x[0]
    s = x[1:]
    for e in s:
        ls.append(d[e])
    d2[visitor] = set(ls)
    ls = []
    
for i in range(K):
    x = input().split()
    for e in x:
        ls2.append(d2[e])
    c = ls2[0]
    for j in range(1,len(ls2)):
        c = c.intersection(ls2[j])
    
    if c == set():
        print('None')
    elif c != set():
        if len(c) > 1:
            for e in c:
                output.append(e)
            output = sorted(ouput)
            print(' '.join(output))
        else:
            for e in c:
                print(e)
            
            

# 1680508, 2022-11-12 10:59:21, xxxx (0%)

N,M,K = [int(e) for e in input().split()]
d = {} # {name:faculty}
d2 = {} # {ชื่อแขก:{set of คณะที่แขกมาหา}}
ls = [] # list ของ คณะที่แขกมาหา
ls2 = [] # set ของคณะของแขกที่เราสนใจ
ls3 = []
c = set()
output = []
for i in range(N):
    name,faculty = input().split()
    d[name] = faculty

for i in range(M):
    x = input().split()
    visitor = x[0]
    s = x[1:]
    for e in s:
        ls.append(d[e])
    d2[visitor] = set(ls)
    ls = []
    
for i in range(K):
    x = input().split()
    for e in x:
        ls2.append(d2[e])
    c = ls2[0]
    for j in range(1,len(ls2)):
        c = c.intersection(ls2[j])
    
    if c == set():
        output.append('None')
    else:
        for e in c:
            ls3.append(e)
        output.append(ls3)
        ls3 = []
        
for e in ouput:
    if e =='None':
        print(e)
    elif e != 'None' and len(e) > 1:
        print(' '.join(e))
    else:
        print(e[0])
    
            

# 1680525, 2022-11-12 11:00:02, P--- (25%)

N,M,K = [int(e) for e in input().split()]
d = {} # {name:faculty}
d2 = {} # {ชื่อแขก:{set of คณะที่แขกมาหา}}
ls = [] # list ของ คณะที่แขกมาหา
ls2 = [] # set ของคณะของแขกที่เราสนใจ
ls3 = []
c = set()
output = []
for i in range(N):
    name,faculty = input().split()
    d[name] = faculty

for i in range(M):
    x = input().split()
    visitor = x[0]
    s = x[1:]
    for e in s:
        ls.append(d[e])
    d2[visitor] = set(ls)
    ls = []
    
for i in range(K):
    x = input().split()
    for e in x:
        ls2.append(d2[e])
    c = ls2[0]
    for j in range(1,len(ls2)):
        c = c.intersection(ls2[j])
    
    if c == set():
        output.append('None')
    else:
        for e in c:
            ls3.append(e)
        output.append(ls3)
        ls3 = []
        
for e in output:
    if e =='None':
        print(e)
    elif e != 'None' and len(e) > 1:
        print(' '.join(e))
    else:
        print(e[0])
# 1680541, 2022-11-12 11:00:32, P-P- (50%)

N,M,K = [int(e) for e in input().split()]
d = {} # {name:faculty}
d2 = {} # {ชื่อแขก:{set of คณะที่แขกมาหา}}
ls = [] # list ของ คณะที่แขกมาหา
ls2 = [] # set ของคณะของแขกที่เราสนใจ
ls3 = []
c = set()
output = []
for i in range(N):
    name,faculty = input().split()
    d[name] = faculty

for i in range(M):
    x = input().split()
    visitor = x[0]
    s = x[1:]
    for e in s:
        ls.append(d[e])
    d2[visitor] = set(ls)
    ls = []
    
for i in range(K):
    x = input().split()
    for e in x:
        ls2.append(d2[e])
    c = ls2[0]
    for j in range(1,len(ls2)):
        c = c.intersection(ls2[j])
    
    if c == set():
        output.append('None')
    else:
        for e in c:
            ls3.append(e)
        output.append(sorted(ls3))
        ls3 = []
        
for e in output:
    if e =='None':
        print(e)
    elif e != 'None' and len(e) > 1:
        print(' '.join(e))
    else:
        print(e[0])
    
            

# 1680730, 2022-11-12 11:07:28, P-P- (50%)

N,M,K = [int(e) for e in input().split()]
d = {} # {name:faculty}
d2 = {} # {ชื่อแขก:{set of คณะที่แขกมาหา}}
ls = [] # list ของ คณะที่แขกมาหา
ls2 = [] # set ของคณะของแขกที่เราสนใจ
ls3 = [] # กลับชื่อคณะ
ls4 = [] # เรียงคณะใหม่

c = set()
output = []
for i in range(N):
    name,faculty = input().split()
    d[name] = faculty

for i in range(M):
    x = input().split()
    visitor = x[0]
    s = x[1:]
    for e in s:
        ls.append(d[e])
    d2[visitor] = set(ls)
    ls = []
    
for i in range(K):
    x = input().split()
    for e in x:
        ls2.append(d2[e])
    c = ls2[0]
    for j in range(1,len(ls2)):
        c = c.intersection(ls2[j])
    
    if c == set():
        output.append('None')
    else:
        for e in c:
            ls3.append(e[::-1])
        ls3 = sorted(ls3)
        for e in ls3:
            ls4.append(e[::-1])
        output.append(ls4)
        ls3 = []
        ls4 = []

        
for e in output:
    if e =='None':
        print(e)
    elif e != 'None' and len(e) > 1:
        print(' '.join(e))
    else:
        print(e[0])
# 1681302, 2022-11-12 11:23:57, PPPP (100%)

N,M,K = [int(e) for e in input().split()]
d = {} # {name:faculty}
d2 = {} # {ชื่อแขก:{set of คณะที่แขกมาหา}}
ls = [] # list ของ คณะที่แขกมาหา
ls2 = [] # set ของคณะของแขกที่เราสนใจ
ls3 = [] # กลับชื่อคณะ
ls4 = [] # เรียงคณะใหม่

c = set()
output = []
for i in range(N):
    name,faculty = input().split()
    d[name] = faculty

for i in range(M):
    x = input().split()
    visitor = x[0]
    s = x[1:]
    for e in s:
        ls.append(d[e])
    d2[visitor] = set(ls)
    ls = []
    
for i in range(K):
    x = input().split()
    for e in x:
        ls2.append(d2[e])
    c = ls2[0]
    for j in range(1,len(ls2)):
        c = c.intersection(ls2[j])
    
    if c == set():
        output.append('None')
    else:
        for e in c:
            ls3.append(e[::-1])
        ls3 = sorted(ls3)
        for e in ls3:
            ls4.append(e[::-1])
        output.append(ls4)
        ls3 = []
        ls4 = []
        ls2 = []

        
for e in output:
    if e =='None':
        print(e)
    elif e != 'None' and len(e) > 1:
        print(' '.join(e))
    else:
        print(e[0])
    
            


6531303021
# 1678832, 2022-11-12 09:37:05, ---- (0%)

stu = {}
N,M,K = [int(i) for i in input().split()]
for i in range(N):
    a,b = input().split()
    stu[a] = b
peo = {}
fac = {}
for i in range(M):
    a = input().split()
    peo[a[0]] = a[1:]
    for z in a[1:]:
        if z in stu:
            if stu[z] not in fac:fac[stu[z]] = set()
            fac[stu[z]].add(a[0])
for i in range(K):
    fa = []
    lis = set(input().split())
    for k,v in fac.items():
        if v == lis:fa.append(k)
    if len(fa) != 0 :print(' '.join(sorted(fa)))
    else:print(None)



# 1678866, 2022-11-12 09:38:49, ---- (0%)

stu = {}
N,M,K = [int(i) for i in input().split()]
for i in range(N):
    a,b = input().split()
    stu[a] = b
peo = {}
fac = {}
for i in range(M):
    a = input().split()
    peo[a[0]] = a[1:]
    for z in a[1:]:
        if z in stu:
            if stu[z] not in fac:fac[stu[z]] = set()
            fac[stu[z]].add(a[0])
for i in range(K):
    fa = []
    lis = set(input().split())
    for k,v in fac.items():
        if v == lis:fa.append(k)
    if len(fa) != 0 :print(' '.join(sorted(fa)))
    else:print('None')
# 1678949, 2022-11-12 09:44:03, ---- (0%)

stu = {}
N,M,K = [int(i) for i in input().strip().split()]
for i in range(N):
    a,b = input().strip().split()
    stu[a] = b
peo = {}
fac = {}
for i in range(M):
    a = input().strip().split()
    peo[a[0]] = a[1:]
    for z in a[1:]:
        if z in stu:
            if stu[z] not in fac:fac[stu[z]] = set()
            fac[stu[z]].add(a[0])

for i in range(K):
    fa = []
    lis = set(input().strip().split())
    for k,v in fac.items():
        if v == lis:fa.append(k)
    if len(fa) != 0 :print(' '.join(sorted(fa)))
    else:print('None')
# 1679751, 2022-11-12 10:26:03, ---- (0%)

stu = {}
N,M,K = [int(i) for i in input().strip().split()]
for i in range(N):
    a,b = input().strip().split()
    stu[a] = b
peo = {}
fac = {}
for i in range(M):
    a = input().strip().split()
    peo[a[0]] = a[1:]
    for z in a[1:]:
        if z in stu:
            if stu[z] not in fac:fac[stu[z]] = set()
            fac[stu[z]].add(a[0])

for i in range(K):
    fa = []
    lis = set(input().strip().split())
    for k,v in fac.items():
        if v == lis:fa.append(k)
    if len(fa) != 0 :print(' '.join(sorted(fa)))
    else:print('None')
# 1679897, 2022-11-12 10:31:43, ---- (0%)

stu = {}
N,M,K = [int(i) for i in input().strip().split()]
for i in range(N):
    a,b = input().strip().split()
    stu[a] = b
peo = {}
fac = {}
for i in range(M):
    a = input().strip().split()
    peo[a[0]] = a[1:]
    for z in a[1:]:
        if z in stu:
            if stu[z] not in fac:fac[stu[z]] = set()
            fac[stu[z]].add(a[0])

for i in range(K):
    fa = []
    lis = input().split()
    for k,v in fac.items():
        if v == set(lis):fa.append(k)
    if len(fa) != 0 :print(' '.join(sorted(fa)))
    else:print('None')
# 1680050, 2022-11-12 10:39:23, ---- (0%)

stu = {}
N,M,K = [int(i) for i in input().strip().split()]
for i in range(N):
    a,b = input().strip().split()
    stu[a] = b
peo = {}
fac = {}
for i in range(M):
    a = input().strip().split()
    peo[a[0]] = a[1:]
    for z in a[1:]:
        if z in stu:
            if stu[z] not in fac:fac[stu[z]] = set()
            fac[stu[z]].add(a[0])

for i in range(K):
    fa = []
    lis = input().split()
    for k,v in fac.items():
        if v == set(lis) and len(lis) >1 :fa.append(k)
    if len(fa) != 0 :print(' '.join(sorted(fa)))
    else:print('None')
# 1680531, 2022-11-12 11:00:14, ---- (0%)

stu = {}
peo = {}
fac = {}

N,M,K = [int(i) for i in input().strip().split()]
for i in range(N):
    a,b = input().strip().split()
    stu[a] = b

for i in range(M):
    a = input().strip().split()
    peo[a[0]] = a[1:]
    for z in a[1:]:
        if z in stu:
            if stu[z] not in fac:fac[stu[z]] = set()
            fac[stu[z]].add(a[0])

for i in range(K):
    fa = []
    lis = set(input().split())
    for k,v in fac.items():
        g = v | lis
        print(g == v)
        if g == v:fa.append(k)
            

    if len(fa) != 0 :print(' '.join(sorted(fa)))
    else:print('None')

# 1680535, 2022-11-12 11:00:24, PPPP (100%)

stu = {}
peo = {}
fac = {}

N,M,K = [int(i) for i in input().strip().split()]
for i in range(N):
    a,b = input().strip().split()
    stu[a] = b

for i in range(M):
    a = input().strip().split()
    peo[a[0]] = a[1:]
    for z in a[1:]:
        if z in stu:
            if stu[z] not in fac:fac[stu[z]] = set()
            fac[stu[z]].add(a[0])

for i in range(K):
    fa = []
    lis = set(input().split())
    for k,v in fac.items():
        g = v | lis
        if g == v:fa.append(k)
            

    if len(fa) != 0 :print(' '.join(sorted(fa)))
    else:print('None')
# 1681510, 2022-11-12 11:28:05, PPPP (100%)

stu = {}
fac = {}

N,M,K = [int(i) for i in input().strip().split()]
for i in range(N):
    a,b = input().strip().split()
    stu[a] = b

for i in range(M):
    a = input().strip().split()
    for z in a[1:]:
        if z in stu:
            if stu[z] not in fac:fac[stu[z]] = set()
            fac[stu[z]].add(a[0])

for i in range(K):
    fa = []
    lis = set(input().split())
    for k,v in fac.items():
        g = v | lis
        if g == v:fa.append(k)
            
    if len(fa) != 0 :print(' '.join(sorted(fa)))
    else:print('None')


6230083421
# 1679601, 2022-11-12 10:19:43, P-P- (50%)

n,m,k = [int(e) for e in input().split()]
kna = {}
for i in range(n):
    ban,ka = input().split()
    if k not in kna: kna[ban] = ''
    kna[ban] = ka
visit = {}
for i in range(m):
    x = input().split()
    guest = x[0] ; party = x[1:]
    visit[guest] = party
check = []
for i in range(k):
    y = input().split()
    check.append(tuple(y))
summing = {}
for c in check:
#     summing = {}
    for ch in c:
        for chn in visit[ch] :
            if ch not in summing: summing[ch] = set()
            summing[ch].add(kna[chn])
#     print(summing)
out = []
for c in check:
    t = set()
    for i in range(len(c)-1):
        t = summing[c[i]] & summing[c[i+1]]
    if t != set():
        out.append(list(t))
    else:
        out.append(['None'])
out.sort(reverse=True)
for c in out:
    c.sort()
    print(' '.join(c))


# 1679753, 2022-11-12 10:26:03, P-P- (50%)

n,m,k = [int(e) for e in input().split()]
kna = {}
for i in range(n):
    ban,ka = input().split()
    if k not in kna: kna[ban] = ''
    kna[ban] = ka
visit = {}
for i in range(m):
    x = input().split()
    guest = x[0] ; party = x[1:]
    visit[guest] = party
check = []
for i in range(k):
    y = input().split()
    check.append(tuple(y))
summing = {}
for c in check:
#     summing = {}
    for ch in c:
        for chn in visit[ch] :
            if ch not in summing: summing[ch] = set()
            summing[ch].add(kna[chn])
#     print(summing)
out = []
for c in check:
    t = set()
    for i in range(len(c)-1):
        t = summing[c[i]] & summing[c[i+1]]
    if t != set():
        out.append(list(t))
    else:
        out.append(['None'])
out.sort()
for c in out:
    c.sort()
    print(' '.join(c))
# 1680133, 2022-11-12 10:43:03, P-P- (50%)

n,m,k = [int(e) for e in input().split()]
kna = {}
for i in range(n):
    ban,ka = input().split()
    if k not in kna: kna[ban] = ''
    kna[ban] = ka
visit = {}
for i in range(m):
    x = input().split()
    guest = x[0] ; party = x[1:]
    visit[guest] = party
check = []
for i in range(k):
    y = input().split()
    check.append(tuple(y))
summing = {}
for c in check:
#     summing = {}
    for ch in c:
        for chn in visit[ch] :
            if ch not in summing: summing[ch] = set()
            summing[ch].add(kna[chn])
#     print(summing)
out = []
for c in check:
    t = set()
    for i in range(len(c)-1):
        a = summing[c[i]] & summing[c[i+1]]
        if a != set():
            t |= a
        else:
            t &= a
    if t != set():
        out.append(list(t))
    else:
        out.append(['None'])
out.sort(reverse=True)
for c in out:
    c.sort()
    print(' '.join(c))


# 1681007, 2022-11-12 11:16:39, P-P- (50%)

n,m,k = [int(e) for e in input().split()]
kna = {}
for i in range(n):
    ban,ka = input().split()
    if k not in kna: kna[ban] = ''
    kna[ban] = ka
visit = {}
for i in range(m):
    x = input().split()
    guest = x[0] ; party = x[1:]
    visit[guest] = party
check = []
for i in range(k):
    y = input().split()
    check.append(tuple(y))
summing = {}
for c in check:
#     summing = {}
    for ch in c:
        for chn in visit[ch] :
            if ch not in summing: summing[ch] = set()
            summing[ch].add(kna[chn])
#     print(summing)
out = []
for c in check:
    t = set()
    for i in range(len(c)-1):
        a = summing[c[i]] & summing[c[i+1]]
        if a != set():
            t |= a
        else:
            t &= a
    if t != set():
        out.append(list(t))
    else:
        out.append(['None'])
out.sort(reverse=True)
for c in out:
    c.sort()
    print(' '.join(c))


# 1681037, 2022-11-12 11:17:11, P-P- (50%)

n,m,k = [int(e) for e in input().split()]
kna = {}
for i in range(n):
    ban,ka = input().split()
    if k not in kna: kna[ban] = ''
    kna[ban] = ka
visit = {}
for i in range(m):
    x = input().split()
    guest = x[0] ; party = x[1:]
    visit[guest] = party
check = []
for i in range(k):
    y = input().split()
    check.append(tuple(y))
summing = {}
for c in check:
#     summing = {}
    for ch in c:
        for chn in visit[ch] :
            if ch not in summing: summing[ch] = set()
            summing[ch].add(kna[chn])
#     print(summing)
out = []
for c in check:
    t = set()
    for i in range(len(c)-1):
        a = summing[c[i]] & summing[c[i+1]]
        if a != set():
            t |= a
        else:
            t &= a
    if t != set():
        out.append(list(t))
    else:
        out.append(['None'])
out.sort()
for c in out:
    c.sort()
    print(' '.join(c))
# 1681053, 2022-11-12 11:17:31, PPP- (75%)

n,m,k = [int(e) for e in input().split()]
kna = {}
for i in range(n):
    ban,ka = input().split()
    if k not in kna: kna[ban] = ''
    kna[ban] = ka
visit = {}
for i in range(m):
    x = input().split()
    guest = x[0] ; party = x[1:]
    visit[guest] = party
check = []
for i in range(k):
    y = input().split()
    check.append(tuple(y))
summing = {}
for c in check:
#     summing = {}
    for ch in c:
        for chn in visit[ch] :
            if ch not in summing: summing[ch] = set()
            summing[ch].add(kna[chn])
#     print(summing)
out = []
for c in check:
    t = set()
    for i in range(len(c)-1):
        a = summing[c[i]] & summing[c[i+1]]
        if a != set():
            t |= a
        else:
            t &= a
    if t != set():
        out.append(list(t))
    else:
        out.append(['None'])

for c in out:
    c.sort()
    print(' '.join(c))
# 1681177, 2022-11-12 11:20:54, PPP- (75%)

n,m,k = [int(e) for e in input().split()]
kna = {}
for i in range(n):
    ban,ka = input().split()
    if k not in kna: kna[ban] = ''
    kna[ban] = ka
visit = {}
for i in range(m):
    x = input().split()
    guest = x[0] ; party = x[1:]
    visit[guest] = party
check = []
for i in range(k):
    y = input().split()
    check.append(tuple(y))
summing = {}
for c in check:
#     summing = {}
    for ch in c:
        for chn in visit[ch] :
            if ch not in summing: summing[ch] = set()
            summing[ch].add(kna[chn])
#     print(summing)
out = []
for c in check:
    t = set()
    for i in range(len(c)-1):
        t = summing[c[i]] & summing[c[i+1]]
        #if a != set():
         #   t |= a
        #else:
         #   t &= a
    if t != set():
        out.append(list(t))
    else:
        out.append(['None'])
for c in out:
    c.sort()
    print(' '.join(c))
# 1681358, 2022-11-12 11:25:11, PPPP (100%)

n,m,k = [int(e) for e in input().split()]
kna = {}
for i in range(n):
    ban,ka = input().split()
    if k not in kna: kna[ban] = ''
    kna[ban] = ka
visit = {}
for i in range(m):
    x = input().split()
    guest = x[0] ; party = x[1:]
    visit[guest] = party
check = []
for i in range(k):
    y = input().split()
    check.append(tuple(y))
summing = {}
for c in check:
#     summing = {}
    for ch in c:
        for chn in visit[ch] :
            if ch not in summing: summing[ch] = set()
            summing[ch].add(kna[chn])
#     print(summing)
out = []
for c in check:
    t = set()
    a = list(c[::])
    a.append(c[0])
    for i in range(len(a)-1):
        t = summing[a[i]] & summing[a[i+1]]
        if t == set():break
    if t != set():
        out.append(list(t))
    else:
        out.append(['None'])
for c in out:
    c.sort()
    print(' '.join(c))


6531326421
# 1679272, 2022-11-12 10:01:50, P-P- (50%)

n,h,k = [int(e) for e in input().split()]
stu_fac = {}
fac_stu = {}
for _ in range(n) :
    name,fac = input().split()
    stu_fac[name] = fac
    if fac not in fac_stu :
        fac_stu[fac] = {name}
    else :
        fac_stu[fac].add(name)
name_guests = {}
for _ in range(h) :
    x = input().split()
    name = x[0]
    guests = x[1:]
    name_guests[name] = set(guests)
name_fac = {}
for _ in range(k) :
    n = input().split()
    for e in n :
        if e not in name_fac :
            name_fac[e] = set()
        for j in name_guests[e] :
            name_fac[e].add(stu_fac[j])
    same = set()
    name = sorted(name_fac)
    for i in range(len(name)) :
        for j in range(i+1,len(name)) :
            same = name_fac[name[i]].intersection(name_fac[name[j]])
    if len(same) != 0 :
        print(' '.join(sorted(same)))
    else :
        print('None')

# 1680514, 2022-11-12 10:59:42, P-P- (50%)

n,h,k = [int(e) for e in input().split()]
stu_fac = {}
fac_stu = {}
for _ in range(n) :
    name,fac = input().split()
    stu_fac[name] = fac
    if fac not in fac_stu :
        fac_stu[fac] = {name}
    else :
        fac_stu[fac].add(name)
name_guests = {}
for _ in range(h) :
    x = input().split()
    name = x[0]
    guests = x[1:]
    name_guests[name] = set(guests)
name_fac = {}
for _ in range(k) :
    n = input().split()
    for e in n :
        if e not in name_fac :
            name_fac[e] = set()
        for j in name_guests[e] :
            name_fac[e].add(stu_fac[j])
    same = set()
    name = sorted(name_fac)
    for i in range(len(name)) :
        for j in range(i+1,len(name)) :
            same = name_fac[name[i]].intersection(name_fac[name[j]])
    if len(same) != 0 :
        print(' '.join(sorted(same)))
    else :
        print('None')
    same = set()

# 1680678, 2022-11-12 11:05:21, PPP- (75%)

n,h,k = [int(e) for e in input().split()]
stu_fac = {}
fac_stu = {}
for _ in range(n) :
    name,fac = input().split()
    stu_fac[name] = fac
    if fac not in fac_stu :
        fac_stu[fac] = {name}
    else :
        fac_stu[fac].add(name)
name_guests = {}
for _ in range(h) :
    x = input().split()
    name = x[0]
    guests = x[1:]
    name_guests[name] = set(guests)
name_fac = {}
for _ in range(k) :
    n = input().split()
    name_fac = {}
    for e in n :
        if e not in name_fac :
            name_fac[e] = set()
        for j in name_guests[e] :
            name_fac[e].add(stu_fac[j])
    same = set()
    name = sorted(name_fac)
    for i in range(len(name)) :
        for j in range(i+1,len(name)) :
            same = name_fac[name[i]].intersection(name_fac[name[j]])
    if len(same) != 0 :
        print(' '.join(sorted(same)))
    else :
        print('None')
    same = set()

# 1680698, 2022-11-12 11:06:16, PPP- (75%)

n,h,k = [int(e) for e in input().split()]
stu_fac = {}
fac_stu = {}
for _ in range(n) :
    name,fac = input().split()
    stu_fac[name] = fac
    if fac not in fac_stu :
        fac_stu[fac] = {name}
    else :
        fac_stu[fac].add(name)
name_guests = {}
for _ in range(h) :
    x = input().split()
    name = x[0]
    guests = x[1:]
    name_guests[name] = set(guests)
name_fac = {}
for _ in range(k) :
    n = input().split()
    name_fac = {}
    name = []
    same = set()
    for e in n :
        if e not in name_fac :
            name_fac[e] = set()
        for j in name_guests[e] :
            name_fac[e].add(stu_fac[j])
    name = sorted(name_fac)
    for i in range(len(name)) :
        for j in range(i+1,len(name)) :
            same = name_fac[name[i]].intersection(name_fac[name[j]])
    if len(same) != 0 :
        print(' '.join(sorted(same)))
    else :
        print('None')
# 1680877, 2022-11-12 11:12:25, P-PP (75%)

n,h,k = [int(e) for e in input().split()]
stu_fac = {}
fac_stu = {}
for _ in range(n) :
    name,fac = input().split()
    stu_fac[name] = fac
    if fac not in fac_stu :
        fac_stu[fac] = {name}
    else :
        fac_stu[fac].add(name)
name_guests = {}
for _ in range(h) :
    x = input().split()
    name = x[0]
    guests = x[1:]
    name_guests[name] = set(guests)
name_fac = {}
for _ in range(k) :
    n = input().split()
    name_fac = {}
    name = []
    same = set()
    for e in n :
        if e not in name_fac :
            name_fac[e] = set()
        for j in name_guests[e] :
            name_fac[e].add(stu_fac[j])
    name = sorted(name_fac)
    for i in range(len(name)) :
        for j in range(i+1,len(name)) :
            if len(same) == 0 :
                same = name_fac[name[i]].intersection(name_fac[name[j]])
            else :
                same = same.intersection(name_fac[name[j]])
    if len(same) != 0 :
        print(' '.join(sorted(same)))
    else :
        print('None')
# 1681003, 2022-11-12 11:16:32, P-P- (50%)

n,h,k = [int(e) for e in input().split()]
stu_fac = {}
fac_stu = {}
for _ in range(n) :
    name,fac = input().split()
    stu_fac[name] = fac
    if fac not in fac_stu :
        fac_stu[fac] = {name}
    else :
        fac_stu[fac].add(name)
name_guests = {}
for _ in range(h) :
    x = input().split()
    name = x[0]
    guests = x[1:]
    name_guests[name] = set(guests)
name_fac = {}
for _ in range(k) :
    n = input().split()
    name_fac = {}
    name = []
    same = set()
    for e in n :
        if e not in name_fac :
            name_fac[e] = set()
        for j in name_guests[e] :
            name_fac[e].add(stu_fac[j])
    name = sorted(name_fac)
    for i in range(len(name)) :
        for j in range(i+1,len(name)) :
            if len(same) == 0 :
                same = name_fac[name[i]].intersection(name_fac[name[j]])
            else :
                same = same.intersection(name_fac[name[j]])
                same.update(name_fac[name[i]].intersection(name_fac[name[j]]))
    if len(same) != 0 :
        print(' '.join(sorted(same)))
    else :
        print('None')
# 1681038, 2022-11-12 11:17:15, xxxx (0%)

n,h,k = [int(e) for e in input().split()]
stu_fac = {}
fac_stu = {}
for _ in range(n) :
    name,fac = input().split()
    stu_fac[name] = fac
    if fac not in fac_stu :
        fac_stu[fac] = {name}
    else :
        fac_stu[fac].add(name)
name_guests = {}
for _ in range(h) :
    x = input().split()
    name = x[0]
    guests = x[1:]
    name_guests[name] = set(guests)
name_fac = {}
for _ in range(k) :
    n = input().split()
    name_fac = {}
    name = []
    same = set()
    for e in n :
        if e not in name_fac :
            name_fac[e] = set()
        for j in name_guests[e] :
            name_fac[e].add(stu_fac[j])
    name = sorted(name_fac)
    for i in range(len(name)) :
        for j in range(i+1,len(name)) :
            if len(same) == 0 :
                same = name_fac[name[i]].intersection(name_fac[name[j]])
            else :
                same = same.intersection(name_fac[name[j]]).intersection(name_fac[i])
    if len(same) != 0 :
        print(' '.join(sorted(same)))
    else :
        print('None')
# 1681068, 2022-11-12 11:17:59, PPPP (100%)

n,h,k = [int(e) for e in input().split()]
stu_fac = {}
fac_stu = {}
for _ in range(n) :
    name,fac = input().split()
    stu_fac[name] = fac
    if fac not in fac_stu :
        fac_stu[fac] = {name}
    else :
        fac_stu[fac].add(name)
name_guests = {}
for _ in range(h) :
    x = input().split()
    name = x[0]
    guests = x[1:]
    name_guests[name] = set(guests)
name_fac = {}
for _ in range(k) :
    n = input().split()
    name_fac = {}
    name = []
    same = set()
    for e in n :
        if e not in name_fac :
            name_fac[e] = set()
        for j in name_guests[e] :
            name_fac[e].add(stu_fac[j])
    name = sorted(name_fac)
    for i in range(len(name)) :
        for j in range(i+1,len(name)) :
            if len(same) == 0 :
                same = name_fac[name[i]].intersection(name_fac[name[j]])
            else :
                same = same.intersection(name_fac[name[j]]).intersection(name_fac[name[i]])
    if len(same) != 0 :
        print(' '.join(sorted(same)))
    else :
        print('None')

6530153021
# 1679662, 2022-11-12 10:22:26, xxxx (0%)

N,M,K = input().split()
eag = {}
eag1 = []
for k in range(int(N)):
    y = input().split()
    if y[1] not in eag:
        eag[y[1]] = []
    eag[y[1]].append(y[0])
    eag1.append(y[1])
yeam = {}
for k in range(int(M)):
    z = input().split()
    yeam[z[0]] = z[1:]
final = {}
for k in range(int(K)):
    q = input().split()
    p = []
    facul = set()
    for i in range(len(q)):
        final[q[i]] = set()
        p.append(q[i])
    
    for i in range(len(final)):
        for e in yeam[p[i]]:
            
            for j in range(len(eag)):
                if e in eag[eag1[j]]:
                    final[q[i]].add(eag1[j])
    
    for i in range(1,len(final)):
        ans = final[p[0]] & final[p[i]]
        final[p[0]] = ans
    if len(ans) == 0:
        print('None')
    else :
        for e in ans :
            print(e)
            
        
        



    
    

# 1679737, 2022-11-12 10:25:06, xxxx (0%)

N,M,K = input().split()
eag = {}
eag1 = []
for k in range(int(N)):
    y = input().split()
    if y[1] not in eag:
        eag[y[1]] = []
    eag[y[1]].append(y[0])
    eag1.append(y[1])
yeam = {}
for k in range(int(M)):
    z = input().split()
    yeam[z[0]] = z[1:]
final = {}
for k in range(int(K)):
    q = input().split()
    p = []
    facul = set()
    for i in range(len(q)):
        final[q[i]] = set()
        p.append(q[i])
    
    for i in range(len(final)):
        for e in yeam[p[i]]:
            
            for j in range(len(eag)):
                if e in eag[eag1[j]]:
                    final[q[i]].add(eag1[j])
    
    for i in range(1,len(final)):
        ans = final[p[0]] & final[p[i]]
        final[p[0]] = ans
    if len(ans) == 0:
        print('None')
    else :
        ans1 = []
        for e in ans :
            ans1.append(e)
        print(' '.join(ans1))
            
        
        



    
    

# 1679825, 2022-11-12 10:29:17, xxxx (0%)

N,M,K = input().split()
eag = {}
eag1 = []
for k in range(int(N)):
    y = input().split()
    if y[1] not in eag:
        eag[y[1]] = []
    eag[y[1]].append(y[0])
    eag1.append(y[1])
yeam = {}
for k in range(int(M)):
    z = input().split()
    yeam[z[0]] = z[1:]
final = {}
for k in range(int(K)):
    q = input().split()
    p = []
    facul = set()
    for i in range(len(q)):
        final[q[i]] = set()
        p.append(q[i])
    
    for i in range(len(final)):
        for e in yeam[p[i]]:
            
            for j in range(len(eag)):
                if e in eag[eag1[j]]:
                    final[q[i]].add(eag1[j])
    
    for i in range(1,len(final)):
        ans = final[p[0]] & final[p[i]]
        final[p[0]] = ans
    if len(ans) == 0:
        print('None')
    else :
        ans1 = []
        for e in ans :
            ans1.append(e)
        print(' '.join(sorted(ans1)))
            
        
        



    
    

# 1679921, 2022-11-12 10:32:32, xxxx (0%)

N,M,K = input().split()
eag = {}
eag1 = []
for k in range(int(N)):
    y = input().split()
    if y[1] not in eag:
        eag[y[1]] = []
    eag[y[1]].append(y[0])
    eag1.append(y[1])
yeam = {}
for k in range(int(M)):
    z = input().split()
    yeam[z[0]] = z[1:]
final = {}
ans1 = []
for k in range(int(K)):
    q = input().split()
    p = []
    facul = set()
    for i in range(len(q)):
        final[q[i]] = set()
        p.append(q[i])
    
    for i in range(len(final)):
        for e in yeam[p[i]]:
            
            for j in range(len(eag)):
                if e in eag[eag1[j]]:
                    final[q[i]].add(eag1[j])
    
    for i in range(1,len(final)):
        ans = final[p[0]] & final[p[i]]
        final[p[0]] = ans
    
    if len(ans) == 0:
        ans1.append('None')
    else :
        for e in ans :
            ans1.append(e)
for e in ans1 :
    print(e)
            
        
        



    
    

# 1679979, 2022-11-12 10:36:00, xxxx (0%)

N,M,K = input().split()
eag = {}
eag1 = []
for k in range(int(N)):
    y = input().split()
    if y[1] not in eag:
        eag[y[1]] = []
    eag[y[1]].append(y[0])
    eag1.append(y[1])
yeam = {}
for k in range(int(M)):
    z = input().split()
    yeam[z[0]] = z[1:]
final = {}
ans1 = []
for k in range(int(K)):
    q = input().split()
    p = []
    facul = set()
    for i in range(len(q)):
        final[q[i]] = set()
        p.append(q[i])
    
    for i in range(len(final)):
        for e in yeam[p[i]]:
            
            for j in range(len(eag)):
                if e in eag[eag1[j]]:
                    final[q[i]].add(eag1[j])
    
    for i in range(1,len(final)):
        ans = final[p[0]] & final[p[i]]
        final[p[0]] = ans
    
    if len(ans) == 0:
        ans1.append('None')
    else :
        ans1.append(list(ans))

for e in ans1 :
    print(' '.join(sorted(e)))
            
        
        



    
    

# 1680007, 2022-11-12 10:37:33, xxxx (0%)

N,M,K = input().split()
eag = {}
eag1 = []
for k in range(int(N)):
    y = input().split()
    if y[1] not in eag:
        eag[y[1]] = []
    eag[y[1]].append(y[0])
    eag1.append(y[1])
yeam = {}
for k in range(int(M)):
    z = input().split()
    yeam[z[0]] = z[1:]
final = {}
ans1 = []
for k in range(int(K)):
    q = input().split()
    p = []
    facul = set()
    for i in range(len(q)):
        final[q[i]] = set()
        p.append(q[i])
    
    for i in range(len(final)):
        for e in yeam[p[i]]:
            
            for j in range(len(eag)):
                if e in eag[eag1[j]]:
                    final[q[i]].add(eag1[j])
    
    for i in range(1,len(final)):
        ans = final[p[0]] & final[p[i]]
        final[p[0]] = ans
    
    if len(ans) == 0:
        ans1.append('None')
    else :
        ans1.append(list(ans))

for e in ans1 :
    if e == 'None':
        print(e)
    else:
        
        print(' '.join(sorted(e)))
            
        
        



    
    

# 1680415, 2022-11-12 10:55:06, PPPP (100%)

N,M,K = input().split()
eag = {}
eag1 = []
for k in range(int(N)):
    y = input().split()
    if y[1] not in eag:
        eag[y[1]] = []
    eag[y[1]].append(y[0])
    eag1.append(y[1])
yeam = {}
for k in range(int(M)):
    z = input().split()
    yeam[z[0]] = z[1:]

ans1 = []

for k in range(int(K)):
    q = input().split()
    p = []
    final = {}
    facul = set()
    for i in range(len(q)):
        final[q[i]] = set()
        p.append(q[i])
    
    for i in range(len(p)):
        for e in yeam[p[i]]:
            for j in range(len(eag)):
                if e in eag[eag1[j]]:
                    final[q[i]].add(eag1[j])
    
    for i in range(1,len(final)):
        ans = final[p[0]] & final[p[i]]
        final[p[0]] = ans
    
    if len(ans) == 0:
        ans1.append('None')
    else :
        ans1.append(list(ans))

for e in ans1 :
    if e == 'None':
        print(e)
    else:
        
        print(' '.join(sorted(e)))
            
        
        



    
    


6532142421
# 1679813, 2022-11-12 10:28:56, P--- (25%)

n, m, k = [int(i) for i in input().strip().split()]

Faculty_Bandit = {}
Faculties = []
for i in range(n):
    bandit, faculty = input().strip().split()
    Faculty_Bandit[bandit] = faculty
    if faculty not in Faculties:
        Faculties.append(faculty)
#print('Faculty_Bandit', Faculty_Bandit)
#print(Faculties)

LBandit_Guest = {}
for i in range(m):
    s = input().strip().split()
    guest = s[0]
    bandits = s[1:]
    LBandit_Guest[guest] = bandits
#print(LBandit_Guest)

Faculties_Guest = {}
for i in range(k):
    Guests = [s for s in input().strip().split()]
    #print(Guests)

    for guest in Guests:
        for bandit in LBandit_Guest[guest]:
            #print(guest, bandit)
            if guest not in Faculties_Guest:
                Faculties_Guest[guest] = [Faculty_Bandit[bandit]]
            else:
                Faculties_Guest[guest] += [Faculty_Bandit[bandit]]
    #print(Faculties_Guest)

    #unique process
    for guest in Faculties_Guest:
        list_unique = []
        for faculty in Faculties_Guest[guest]:
            if faculty not in list_unique:
                list_unique.append(faculty)
        Faculties_Guest[guest] = sorted(list_unique)
    #print(Faculties_Guest)

    #same faculty
    S = set()
    for guest in Faculties_Guest:
        if S == set():
            S = set(Faculties_Guest[guest])
        else:
            S = S & set(Faculties_Guest[guest])
    #print(S)

    #Output
    if S == set():
        print('None')
    else:
        print(''.join(list(S)))
# 1679886, 2022-11-12 10:31:20, P--- (25%)

n, m, k = [int(i) for i in input().strip().split()]

Faculty_Bandit = {}
Faculties = []
for i in range(n):
    bandit, faculty = input().strip().split()
    Faculty_Bandit[bandit] = faculty
    if faculty not in Faculties:
        Faculties.append(faculty)
#print('Faculty_Bandit', Faculty_Bandit)
#print(Faculties)

LBandit_Guest = {}
for i in range(m):
    s = input().strip().split()
    guest = s[0]
    bandits = s[1:]
    LBandit_Guest[guest] = bandits
#print(LBandit_Guest)

Faculties_Guest = {}
for i in range(k):
    Guests = [s for s in input().strip().split()]
    #print(Guests)

    for guest in Guests:
        for bandit in LBandit_Guest[guest]:
            #print(guest, bandit)
            if guest not in Faculties_Guest:
                Faculties_Guest[guest] = [Faculty_Bandit[bandit]]
            else:
                Faculties_Guest[guest] += [Faculty_Bandit[bandit]]
    #print(Faculties_Guest)

    #unique process
    for guest in Faculties_Guest:
        list_unique = []
        for faculty in Faculties_Guest[guest]:
            if faculty not in list_unique:
                list_unique.append(faculty)
        Faculties_Guest[guest] = sorted(list_unique)
    #print(Faculties_Guest)

    #same faculty
    S = set()
    for guest in Faculties_Guest:
        if S == set():
            S = set(Faculties_Guest[guest])
        else:
            S = S & set(Faculties_Guest[guest])
    #print(S)

    #Output
    if S == set():
        print('None')
    else:
        print(' '.join(list(S)))
# 1679904, 2022-11-12 10:32:03, xxxx (0%)

n, m, k = [int(i) for i in input().strip().split()]

Faculty_Bandit = {}
Faculties = []
for i in range(n):
    bandit, faculty = input().strip().split()
    Faculty_Bandit[bandit] = faculty
    if faculty not in Faculties:
        Faculties.append(faculty)
#print('Faculty_Bandit', Faculty_Bandit)
#print(Faculties)

LBandit_Guest = {}
for i in range(m):
    s = input().strip().split()
    guest = s[0]
    bandits = s[1:]
    LBandit_Guest[guest] = bandits
#print(LBandit_Guest)

Faculties_Guest = {}
for i in range(k):
    Guests = [s for s in input().strip().split()]
    #print(Guests)

    for guest in Guests:
        for bandit in LBandit_Guest[guest]:
            #print(guest, bandit)
            if guest not in Faculties_Guest:
                Faculties_Guest[guest] = [Faculty_Bandit[bandit]]
            else:
                Faculties_Guest[guest] += [Faculty_Bandit[bandit]]
    #print(Faculties_Guest)

    #unique process
    for guest in Faculties_Guest:
        list_unique = []
        for faculty in Faculties_Guest[guest]:
            if faculty not in list_unique:
                list_unique.append(faculty)
        Faculties_Guest[guest] = sorted(list_unique)
    #print(Faculties_Guest)

    #same faculty
    S = set()
    for guest in Faculties_Guest:
        if S == set():
            S = set(Faculties_Guest[guest])
        else:
            S = S & set(Faculties_Guest[guest])
    #print(S)

    #Output
    if S == set():
        print('None')
    else:
        print(' '.join(list(S).sort()))
# 1679915, 2022-11-12 10:32:25, compilation error (0%)

n, m, k = [int(i) for i in input().strip().split()]

Faculty_Bandit = {}
Faculties = []
for i in range(n):
    bandit, faculty = input().strip().split()
    Faculty_Bandit[bandit] = faculty
    if faculty not in Faculties:
        Faculties.append(faculty)
#print('Faculty_Bandit', Faculty_Bandit)
#print(Faculties)

LBandit_Guest = {}
for i in range(m):
    s = input().strip().split()
    guest = s[0]
    bandits = s[1:]
    LBandit_Guest[guest] = bandits
#print(LBandit_Guest)

Faculties_Guest = {}
for i in range(k):
    Guests = [s for s in input().strip().split()]
    #print(Guests)

    for guest in Guests:
        for bandit in LBandit_Guest[guest]:
            #print(guest, bandit)
            if guest not in Faculties_Guest:
                Faculties_Guest[guest] = [Faculty_Bandit[bandit]]
            else:
                Faculties_Guest[guest] += [Faculty_Bandit[bandit]]
    #print(Faculties_Guest)

    #unique process
    for guest in Faculties_Guest:
        list_unique = []
        for faculty in Faculties_Guest[guest]:
            if faculty not in list_unique:
                list_unique.append(faculty)
        Faculties_Guest[guest] = sorted(list_unique)
    #print(Faculties_Guest)

    #same faculty
    S = set()
    for guest in Faculties_Guest:
        if S == set():
            S = set(Faculties_Guest[guest])
        else:
            S = S & set(Faculties_Guest[guest])
    #print(S)

    #Output
    if S == set():
        print('None')
    else:
        print(' '.join(sorted(list(S)))
# 1679941, 2022-11-12 10:33:55, P-P- (50%)

n, m, k = [int(i) for i in input().strip().split()]

Faculty_Bandit = {}
Faculties = []
for i in range(n):
    bandit, faculty = input().strip().split()
    Faculty_Bandit[bandit] = faculty
    if faculty not in Faculties:
        Faculties.append(faculty)
#print('Faculty_Bandit', Faculty_Bandit)
#print(Faculties)

LBandit_Guest = {}
for i in range(m):
    s = input().strip().split()
    guest = s[0]
    bandits = s[1:]
    LBandit_Guest[guest] = bandits
#print(LBandit_Guest)

Faculties_Guest = {}
for i in range(k):
    Guests = [s for s in input().strip().split()]
    #print(Guests)

    for guest in Guests:
        for bandit in LBandit_Guest[guest]:
            #print(guest, bandit)
            if guest not in Faculties_Guest:
                Faculties_Guest[guest] = [Faculty_Bandit[bandit]]
            else:
                Faculties_Guest[guest] += [Faculty_Bandit[bandit]]
    #print(Faculties_Guest)

    #unique process
    for guest in Faculties_Guest:
        list_unique = []
        for faculty in Faculties_Guest[guest]:
            if faculty not in list_unique:
                list_unique.append(faculty)
        Faculties_Guest[guest] = sorted(list_unique)
    #print(Faculties_Guest)

    #same faculty
    S = set()
    for guest in Faculties_Guest:
        if S == set():
            S = set(Faculties_Guest[guest])
        else:
            S = S & set(Faculties_Guest[guest])
    #print(S)

    #Output
    if S == set():
        print('None')
    else:
        S = list(S)
        #print('S',S)
        S.sort()
        #print(S)
        print(' '.join(S))
# 1680500, 2022-11-12 10:59:03, P-P- (50%)

n, m, k = [int(i) for i in input().strip().split()]

Faculty_Bandit = {}
Faculties = []
for i in range(n):
    bandit, faculty = input().strip().split()
    Faculty_Bandit[bandit] = faculty
    if faculty not in Faculties:
        Faculties.append(faculty)
#print('Faculty_Bandit', Faculty_Bandit)
#print(Faculties)

LBandit_Guest = {}
for i in range(m):
    s = input().strip().split()
    guest = s[0]
    bandits = s[1:]
    LBandit_Guest[guest] = bandits
#print(LBandit_Guest)

Faculties_Guest = {}
for i in range(k):
    Guests = [s for s in input().strip().split()]
    #print(Guests)

    for guest in Guests:
        for bandit in LBandit_Guest[guest]:
            #print(guest, bandit)
            if guest not in Faculties_Guest:
                Faculties_Guest[guest] = [Faculty_Bandit[bandit]]
            else:
                Faculties_Guest[guest] += [Faculty_Bandit[bandit]]
    #print(Faculties_Guest)

    #unique process
    for guest in Faculties_Guest:
        list_unique = []
        for faculty in Faculties_Guest[guest]:
            if faculty not in list_unique:
                list_unique.append(faculty)
        Faculties_Guest[guest] = sorted(list_unique)
    #print(Faculties_Guest)

    #same faculty
    S = set()
    for guest in Faculties_Guest:
        if S == set():
            S = set(Faculties_Guest[guest])
        else:
            S = S & set(Faculties_Guest[guest])
    #print(S)

    #Output
    if S == set():
        print('None')
    else:
        S = list(S)

        S_lower = []
        for i in S:
            S_lower.append(i.lower())
        S_lower.sort()

        S_sorted = []
        for i in range(len(S_lower)):
            for j in range(len(S)):
                if S_lower[i] == S[j].lower():
                    S_sorted.append(S[j])
        #print(S_sorted)
        
        print(' '.join(S_sorted))
# 1680889, 2022-11-12 11:12:54, PPPP (100%)

n, m, k = [int(i) for i in input().strip().split()]

Faculty_Bandit = {}
Faculties = []
for i in range(n):
    bandit, faculty = input().strip().split()
    Faculty_Bandit[bandit] = faculty
    if faculty not in Faculties:
        Faculties.append(faculty)
#print('Faculty_Bandit', Faculty_Bandit)
#print(Faculties)

LBandit_Guest = {}
for i in range(m):
    s = input().strip().split()
    guest = s[0]
    bandits = s[1:]
    LBandit_Guest[guest] = bandits
#print(LBandit_Guest)

for i in range(k):
    Guests = [s for s in input().strip().split()]
    #print(Guests)

    Faculties_Guest = {}
    for guest in Guests:
        for bandit in LBandit_Guest[guest]:
            #print(guest, bandit)
            if guest not in Faculties_Guest:
                Faculties_Guest[guest] = [Faculty_Bandit[bandit]]
            else:
                Faculties_Guest[guest] += [Faculty_Bandit[bandit]]
    #print(Faculties_Guest)

    #unique process
    for guest in Faculties_Guest:
        list_unique = []
        for faculty in Faculties_Guest[guest]:
            #print(guest, faculty)
            if faculty not in list_unique:
                list_unique.append(faculty)
        Faculties_Guest[guest] = sorted(list_unique)
    #print(Faculties_Guest)

    #same faculty
    S = set()
    for guest in Faculties_Guest:
        if S == set():
            S = set(Faculties_Guest[guest])
        else:
            S = S & set(Faculties_Guest[guest])
    #print(S)

    #Output
    if S == set():
        print('None')
    else:
        S = list(S)
        S.sort()
        # S_lower = []
        # for i in S:
        #     S_lower.append(i.lower())
        # S_lower.sort()

        # S_sorted = []
        # for i in range(len(S_lower)):
        #     for j in range(len(S)):
        #         if S_lower[i] == S[j].lower():
        #             S_sorted.append(S[j])
        # #print(S_sorted)
        
        print(' '.join(S))

6530140821
# 1679134, 2022-11-12 09:54:12, ---- (0%)

n = input().split()
print(n)
i = 0
j = 0
l = 0
bd = {}
kk = {}
while i != int(n[0]):
    i+=1
    b = input().split()
    bd[b[0]] = b[1]
print(bd)
while j != int(n[1]):
    j+=1
    kak = input().split()
    kk[kak[0]] = set()
    for i in kak[1:]:
        kk[kak[0]].add(bd[i])
while l != int(n[2]):
    l+=1
    grp = input().split()
    rr = kk[grp[0]]
    for e in grp:
        rr = rr.intersection(kk[e])
    res = list(rr)
    if len(res) == 0:
        print("None")
    else:
        print(" ".join(res))
# 1679144, 2022-11-12 09:54:45, ---- (0%)

n = input().split()
print(n)
i = 0
j = 0
l = 0
bd = {}
kk = {}
while i != int(n[0]):
    i+=1
    b = input().split()
    bd[b[0]] = b[1]
while j != int(n[1]):
    j+=1
    kak = input().split()
    kk[kak[0]] = set()
    for i in kak[1:]:
        kk[kak[0]].add(bd[i])
while l != int(n[2]):
    l+=1
    grp = input().split()
    rr = kk[grp[0]]
    for e in grp:
        rr = rr.intersection(kk[e])
    res = list(rr)
    if len(res) == 0:
        print("None")
    else:
        print(" ".join(res))
# 1679175, 2022-11-12 09:56:20, PP-- (50%)

n = input().split()
i = 0
j = 0
l = 0
bd = {}
kk = {}
while i != int(n[0]):
    i+=1
    b = input().split()
    bd[b[0]] = b[1]
while j != int(n[1]):
    j+=1
    kak = input().split()
    kk[kak[0]] = set()
    for i in kak[1:]:
        kk[kak[0]].add(bd[i])
while l != int(n[2]):
    l+=1
    grp = input().split()
    rr = kk[grp[0]]
    for e in grp:
        rr = rr.intersection(kk[e])
    res = list(rr)
    if len(res) == 0:
        print("None")
    else:
        print(" ".join(res))
# 1679177, 2022-11-12 09:56:32, xxxx (0%)

n = input().split()
i = 0
j = 0
l = 0
bd = {}
kk = {}
while i != int(n[0]):
    i+=1
    b = input().split()
    bd[b[0]] = b[1]
while j != int(n[1]):
    j+=1
    kak = input().split()
    kk[kak[0]] = set()
    for i in kak[1:]:
        kk[kak[0]].add(bd[i])
while l != int(n[2]):
    l+=1
    grp = input().split()
    rr = kk[grp[0]]
    for e in grp:
        rr = rr.intersection(kk[e])
    res = list(rr.sort())
    if len(res) == 0:
        print("None")
    else:
        print(" ".join(res))
# 1679180, 2022-11-12 09:56:46, xxxx (0%)

n = input().split()
i = 0
j = 0
l = 0
bd = {}
kk = {}
while i != int(n[0]):
    i+=1
    b = input().split()
    bd[b[0]] = b[1]
while j != int(n[1]):
    j+=1
    kak = input().split()
    kk[kak[0]] = set()
    for i in kak[1:]:
        kk[kak[0]].add(bd[i])
while l != int(n[2]):
    l+=1
    grp = input().split()
    rr = kk[grp[0]]
    for e in grp:
        rr = rr.intersection(kk[e])
    res = list(rr.sort())
    if len(res) == 0:
        print("None")
    else:
        print(" ".join(res))
# 1679203, 2022-11-12 09:58:01, PPPP (100%)

n = input().split()
i = 0
j = 0
l = 0
bd = {}
kk = {}
while i != int(n[0]):
    i+=1
    b = input().split()
    bd[b[0]] = b[1]
while j != int(n[1]):
    j+=1
    kak = input().split()
    kk[kak[0]] = set()
    for i in kak[1:]:
        kk[kak[0]].add(bd[i])
while l != int(n[2]):
    l+=1
    grp = input().split()
    rr = kk[grp[0]]
    for e in grp:
        rr = rr.intersection(kk[e])
    res = list(sorted(rr))
    if len(res) == 0:
        print("None")
    else:
        print(" ".join(res))

6530212321
# 1678910, 2022-11-12 09:42:03, xxPx (25%)

x = input().split(' ')
N = int(x[0]) ; M = int(x[1]) ; K = int(x[2])

fac = {}
for i in range(N) :
    n,f = input().split(' ')
    if f not in fac :
        fac[n] = f

visit = {}
for i in range(M) :
    x = input().split(' ')
    v = x[0]
    for e in x[1:] :
        if v not in visit :
            visit[v] = {fac[e]}
        else :
            visit[v].add(fac[e])

for i in range(K) :
    check = []
    x = input().split()
    for e in x :
        for f in visit[e] :
            check.append(f)
    
    check2 = {}
    for f in check :
        if f not in check2 :
            check2[f] = 1
        else :
            check2[f] += 1
    
    check3 = []
    for e in check2 :
        if check2[e] == len(x) :
            check3.append(e)
    
    if len(check3) == 0 :
        print('None')
    else :
        check3.sort()
        print(' '.join(check3))
# 1679036, 2022-11-12 09:48:43, xxPx (25%)

x = input().split(' ')
N = int(x[0]) ; M = int(x[1]) ; K = int(x[2])

fac = {}
for i in range(N) :
    n,f = input().split(' ')
    fac[n] = f

visit = {}
for i in range(M) :
    x = input().split(' ')
    v = x[0]
    for e in x[1:] :
        if v not in visit :
            visit[v] = {fac[e]}
        else :
            visit[v].add(fac[e])

for i in range(K) :
    check = []
    x = input().split()
    for e in x :
        for f in visit[e] :
            check.append(f)
    
    check2 = {}
    for f in check :
        if f not in check2 :
            check2[f] = 1
        else :
            check2[f] += 1
    
    check3 = []
    for e in check2 :
        if check2[e] == len(x) :
            check3.append(e)
    
    if len(check3) == 0 :
        print('None')
    else :
        check3.sort()
        print(' '.join(check3))
# 1679908, 2022-11-12 10:32:15, xxPx (25%)

x = input().split(' ')
N = int(x[0]) ; M = int(x[1]) ; K = int(x[2])

fac = {}
for i in range(N) :
    n,f = input().split(' ')
    fac[n] = f

visit = {}
for i in range(M) :
    x = input().split(' ')
    v = x[0]
    if len(x) > 1 :
        for e in x[1:] :
            if v not in visit :
                visit[v] = {fac[e]}
            else :
                visit[v].add(fac[e])
    else :
        visit[v] = set()

for i in range(K) :
    check = []
    x = input().split()
    for e in x :
        for f in visit[e] :
            check.append(f)
    
    check2 = {}
    for f in check :
        if f not in check2 :
            check2[f] = 1
        else :
            check2[f] += 1
    
    check3 = []
    for e in check2 :
        if check2[e] == len(x) :
            check3.append(e)
    
    if len(check3) == 0 :
        print('None')
    else :
        check3.sort()
        print(' '.join(check3)) 
# 1680137, 2022-11-12 10:43:17, xxPx (25%)

x = input().split(' ')
N = int(x[0]) ; M = int(x[1]) ; K = int(x[2])

fac = {}
for i in range(N) :
    n,f = input().split(' ')
    fac[n] = f
    
visit = {}
for i in range(M) :
    x = input().split(' ')
    v = x[0]
    for e in x[1:] :
        if v not in visit :
            visit[v] = {fac[e]}
        else :
            visit[v].add(fac[e])
            
for i in range(K) :
    x = input().split(' ')
    c = set()
    for i in range(len(x)) :
        if c == set() :
            c = visit[x[i]]&visit[x[i+1]]
        else :
            c = c&visit[x[i]]
    if len(c) == 0 :
        print('None')
    else :
        c = sorted(c)
        print(' '.join(c))
# 1680309, 2022-11-12 10:51:54, xxPx (25%)

x = input().split(' ')
N = int(x[0]) ; M = int(x[1]) ; K = int(x[2])

fac = {}
for i in range(N) :
    n,f = input().split(' ')
    fac[n] = f
    
visit = {}
for i in range(M) :
    x = input().split(' ')
    v = x[0]
    for e in x[1:] :
        if v not in visit :
            visit[v] = {fac[e]}
        else :
            visit[v].add(fac[e])
            
output = []
for i in range(K) :
    x = input().split(' ')
    c = set()
    for i in range(len(x)) :
        if c == set() :
            c = visit[x[i]]&visit[x[i+1]]
        else :
            c = c&visit[x[i]]
    output.append(sorted(c))

for e in output :
    if len(e) == 0 :
        print('None')
    else :
        print(' '.join(e))
# if len(c) == 0 :
#     print('None')
# else :
#     c = sorted(c)
#     print(' '.join(c))

# 1680789, 2022-11-12 11:09:13, PPPP (100%)

x = input().split(' ')
N = int(x[0]) ; M = int(x[1]) ; K = int(x[2])

fac = {}
for i in range(N) :
    n,f = input().split(' ')
    fac[n] = f
    
visit = {}
for i in range(M) :
    x = input().strip().split(' ')
    v = x[0]
    for e in x[1:] :
        if v not in visit :
            visit[v] = {fac[e]}
        else :
            visit[v].add(fac[e])
            
output = []
for i in range(K) :
    x = input().strip().split(' ')
    c = set()
    for i in range(len(x)) :
        if c == set() :
            c = visit[x[i]]
        else :
            c = c&visit[x[i]]

    if len(c) == 0 :
         print('None')
    else :
         c = sorted(c)
         print(' '.join(c))

6531338021
# 1680411, 2022-11-12 10:54:59, xxxx (0%)

N, M, K = input().split()

facname = {}
namefac = {}
for i in range(int(N)):
    name, fac = input().split()
    if fac not in facname:
        facname[fac] = [name]
    else:
        facname[fac] += [name]

    namefac[name] = fac
#print(facname)
#print(namefac)
guest = {}
for i in range(int(M)):
    g = input().split()
    for j in range(len(g)-1):
        if g[0] not in guest:
            guest[g[0]] = [namefac[g[j+1]]]
        else:
            guest[g[0]] += [namefac[g[j+1]]]
#print(guest)



for i in range(int(K)):
    gg = input().split()
    for j in gg[1:]:
        s1 = set(guest[gg[0]]).intersection(set(guest[j]))
    s1.sort()
    if len(s1) == 0:
        print("None")
    else:
        print(" ".join(s1))
    

    
# 1680566, 2022-11-12 11:01:54, ---- (0%)

N, M, K = input().split()

facname = {}
namefac = {}
for i in range(int(N)):
    name, fac = input().split()
    if fac not in facname:
        facname[fac] = [name]
    else:
        facname[fac] += [name]

    namefac[name] = fac
#print(facname)
#print(namefac)
guest = {}
for i in range(int(M)):
    g = input().split()
    for j in range(len(g)-1):
        if g[0] not in guest:
            guest[g[0]] = [namefac[g[j+1]]]
        else:
            guest[g[0]] += [namefac[g[j+1]]]
print(guest)


# print(set(guest["Eren"]))
for i in range(int(K)):
    gg = input().split()
    for j in gg[1:]:
        s1 = set(guest[gg[0]]).intersection(set(guest[j]))
    s2 = sorted(s1)
    print(s2)
    if len(s2) == 0:
        print("None")
    else:
        print(" ".join(s2))
    

    
# 1680654, 2022-11-12 11:04:33, xxxx (0%)

N, M, K = input().split()

facname = {}

for i in range(int(N)):
    name, fac = input().split()
    if fac not in facname:
        facname[fac] = [name]
    else:
        facname[fac] += [name]

#print(facname)
#print(namefac)
guest = {}
for i in range(int(M)):
    g = input().split()
    for j in range(len(g)-1):
        if g[0] not in guest:
            guest[g[0]] = [namefac[g[j+1]]]
        else:
            guest[g[0]] += [namefac[g[j+1]]]
print(guest)


# print(set(guest["Eren"]))
for i in range(int(K)):
    gg = input().split()
    for j in gg[1:]:
        s1 = set(guest[gg[0]]).intersection(set(guest[j]))
    s2 = sorted(s1)
    #print(s2)
    if len(s2) == 0:
        print("None")
    else:
        print(" ".join(s2))
    

    
# 1680667, 2022-11-12 11:04:57, xxxx (0%)

N, M, K = input().split()

facname = {}

for i in range(int(N)):
    name, fac = input().split()
    if fac not in facname:
        facname[fac] = [name]
    else:
        facname[fac] += [name]

#print(facname)
#print(namefac)
guest = {}
for i in range(int(M)):
    g = input().split()
    for j in range(len(g)-1):
        if g[0] not in guest:
            guest[g[0]] = [namefac[g[j+1]]]
        else:
            guest[g[0]] += [namefac[g[j+1]]]
print(guest)


# print(set(guest["Eren"]))
for i in range(int(K)):
    gg = input().strip().split()
    for j in gg[1:]:
        s1 = set(guest[gg[0]]).intersection(set(guest[j]))
    s2 = sorted(s1)
    #print(s2)
    if len(s2) == 0:
        print("None")
    else:
        print(" ".join(s2))
    

    
# 1680688, 2022-11-12 11:05:39, ---- (0%)

N, M, K = input().split()

facname = {}
namefac = {}
for i in range(int(N)):
    name, fac = input().split()
    if fac not in facname:
        facname[fac] = [name]
    else:
        facname[fac] += [name]

    namefac[name] = fac
#print(facname)
#print(namefac)
guest = {}
for i in range(int(M)):
    g = input().split()
    for j in range(len(g)-1):
        if g[0] not in guest:
            guest[g[0]] = [namefac[g[j+1]]]
        else:
            guest[g[0]] += [namefac[g[j+1]]]
print(guest)


# print(set(guest["Eren"]))
for i in range(int(K)):
    gg = input().split()
    for j in gg[1:]:
        s1 = set(guest[gg[0]]).intersection(set(guest[j]))
    s2 = sorted(s1)
    #print(s2)
    if len(s2) == 0:
        print("None")
    else:
        print(" ".join(s2))
    

    
# 1680699, 2022-11-12 11:06:22, PPPP (100%)

N, M, K = input().split()

facname = {}
namefac = {}
for i in range(int(N)):
    name, fac = input().split()
    if fac not in facname:
        facname[fac] = [name]
    else:
        facname[fac] += [name]

    namefac[name] = fac
#print(facname)
#print(namefac)
guest = {}
for i in range(int(M)):
    g = input().split()
    for j in range(len(g)-1):
        if g[0] not in guest:
            guest[g[0]] = [namefac[g[j+1]]]
        else:
            guest[g[0]] += [namefac[g[j+1]]]
#print(guest)


# print(set(guest["Eren"]))
for i in range(int(K)):
    gg = input().split()
    for j in gg[1:]:
        s1 = set(guest[gg[0]]).intersection(set(guest[j]))
    s2 = sorted(s1)
    #print(s2)
    if len(s2) == 0:
        print("None")
    else:
        print(" ".join(s2))
    

    

6530022421
# 1679529, 2022-11-12 10:15:07, xxxx (0%)

n = int(input())
m = int(input())
k = int(input())
SF = {}
Grad = {}
for i in range(n):
    stu, fau = input().split()
    SF[stu] = fau
for i in range(m):
    a = input().split()
    Grad[a[0]] = a[1:]
ANS = []
for i in range(k):
    j = input().split()
    s = set([SF[e] for e in Grad[j[0]] if e in SF])
    for e in j:
        if e in Grad:
            for ch in Grad[j]:
                l = set()
                if ch in SF:
                    l.add(SF[ch])
        l = s & l
    if len(l) == 0:
        ANS.append('None')
    else:
        print(' '.join(list(l)))
# 1679614, 2022-11-12 10:20:25, P--- (25%)

a = input().split()
n = int(a[0])
m = int(a[1])
k = int(a[2])
SF = {}
Grad = {}
for i in range(n):
    stu, fau = input().split()
    SF[stu] = fau
for i in range(m):
    a = input().split()
    Grad[a[0]] = a[1:]
ANS = []
for i in range(k):
    j = input().split()
    s = set([SF[e] for e in Grad[j[0]] if e in SF])
    for e in j:
        if e in Grad:
            for ch in Grad[e]:
                l = set()
                if ch in SF:
                    l.add(SF[ch])
    l = s & l
    if len(l) == 0:
        ANS.append('None')
    else:
        print(' '.join(list(l))) 
# 1681172, 2022-11-12 11:20:46, P--- (25%)

a = input().split()
n = int(a[0])
m = int(a[1])
k = int(a[2])
SF = {}
Grad = {}
for i in range(n):
    stu, fau = input().split()
    SF[stu] = fau
for i in range(m):
    a = input().split()
    Grad[a[0]] = a[1:]
ANS = []
for i in range(k):
    j = input().split()
    s = set([SF[e] for e in Grad[j[0]] if e in SF])
    for e in j[1:]:
        if e in Grad:
            l = set()
            for ch in Grad[e]:
                if ch in SF:
                    l.add(SF[ch])
        l = s & l
    if len(l) == 0:
        ANS.append('None')
    else:
        print(' '.join(list(l)))              
# 1681203, 2022-11-12 11:21:21, PP-- (50%)

a = input().split()
n = int(a[0])
m = int(a[1])
k = int(a[2])
SF = {}
Grad = {}
for i in range(n):
    stu, fau = input().split()
    SF[stu] = fau
for i in range(m):
    a = input().split()
    Grad[a[0]] = a[1:]
for i in range(k):
    j = input().split()
    s = set([SF[e] for e in Grad[j[0]] if e in SF])
    for e in j[1:]:
        if e in Grad:
            l = set()
            for ch in Grad[e]:
                if ch in SF:
                    l.add(SF[ch])
        l = s & l
    if len(l) == 0:
        print('None')
    else:
        print(' '.join(list(l)))
# 1681350, 2022-11-12 11:25:04, PPPP (100%)

a = input().split()
n = int(a[0])
m = int(a[1])
k = int(a[2])
SF = {}
Grad = {}
for i in range(n):
    stu, fau = input().split()
    SF[stu] = fau
for i in range(m):
    a = input().split()
    Grad[a[0]] = a[1:]
for i in range(k):
    j = input().split()
    s = set([SF[e] for e in Grad[j[0]] if e in SF])
    for e in j[1:]:
        if e in Grad:
            l = set()
            for ch in Grad[e]:
                if ch in SF:
                    l.add(SF[ch])
        l = s & l
    if len(l) == 0:
        print('None')
    else:
        print(' '.join(sorted(list(l))))

6530037921
# 1680188, 2022-11-12 10:45:41, P--- (25%)

N,M,K = input().split()
N = int(N)
M = int(M)
K = int(K)
faculty = {}
result = [[] for i in range(K)]
for i in range(N):
    a,b = input().split()
    if b not in faculty: faculty[b] = set()
    faculty[b].add(a)       
guess = {}
for i in range(M):
    x = input().split()
    if x[0] not in guess: guess[x[0]] = set()
    for i in x[1:]:
        guess[x[0]].add(i)
for i in range(K):
    same = {}
    group = input().split()
    for fac in faculty:
        same[fac]=[0 for nm in range(len(group))]
    for u in range(len(group)):
        for j in guess[group[u]]:
            for k in faculty:
                if j in faculty[k]:
                    same[k][u] = 1
    count = 0
    for p in same:
        for j in range(len(group)):
            if same[p][j] == 1:
                count += 1
        if count == len(group):
            result[i].append(p)
                    
for i in result:
    if len(i) != 0:
        print(" ".join(i))
    else:
        print("None")
    
# 1680232, 2022-11-12 10:47:59, PPP- (75%)

N,M,K = input().split()
N = int(N)
M = int(M)
K = int(K)
faculty = {}
result = [[] for i in range(K)]
for i in range(N):
    a,b = input().split()
    if b not in faculty: faculty[b] = set()
    faculty[b].add(a)       
guess = {}
for i in range(M):
    x = input().split()
    if x[0] not in guess: guess[x[0]] = set()
    for i in x[1:]:
        guess[x[0]].add(i)
for i in range(K):
    same = {}
    group = input().split()
    for fac in faculty:
        same[fac]=[0 for nm in range(len(group))]
    for u in range(len(group)):
        for j in guess[group[u]]:
            for k in faculty:
                if j in faculty[k]:
                    same[k][u] = 1
    for p in same:
        count = 0
        for j in range(len(group)):
            if same[p][j] == 1:
                count += 1
        if count == len(group):
            result[i].append(p)
                    
for i in result:
    if len(i) != 0:
        print(" ".join(i))
    else:
        print("None")
# 1680243, 2022-11-12 10:49:00, xxxx (0%)

N,M,K = input().split()
N = int(N)
M = int(M)
K = int(K)
faculty = {}
result = [[] for i in range(K)]
for i in range(N):
    a,b = input().split()
    if b not in faculty: faculty[b] = set()
    faculty[b].add(a)       
guess = {}
for i in range(M):
    x = input().split()
    if x[0] not in guess: guess[x[0]] = set()
    for i in x[1:]:
        guess[x[0]].add(i)
for i in range(K):
    same = {}
    group = input().split()
    for fac in faculty:
        same[fac]=[0 for nm in range(len(group))]
    for u in range(len(group)):
        for j in guess[group[u]]:
            for k in faculty:
                if j in faculty[k]:
                    same[k][u] = 1
    for p in same:
        count = 0
        for j in range(len(group)):
            if same[p][j] == 1:
                count += 1
        if count == len(group):
            result[i].append(p)
                    
for i in result:
    if len(i) != 0:
        print(" ".join(i.sort()))
    else:
        print("None")
# 1680246, 2022-11-12 10:49:12, PP-- (50%)

N,M,K = input().split()
N = int(N)
M = int(M)
K = int(K)
faculty = {}
result = [[] for i in range(K)]
for i in range(N):
    a,b = input().split()
    if b not in faculty: faculty[b] = set()
    faculty[b].add(a)       
guess = {}
for i in range(M):
    x = input().split()
    if x[0] not in guess: guess[x[0]] = set()
    for i in x[1:]:
        guess[x[0]].add(i)
for i in range(K):
    same = {}
    group = input().split()
    for fac in faculty:
        same[fac]=[0 for nm in range(len(group))]
    for u in range(len(group)):
        for j in guess[group[u]]:
            for k in faculty:
                if j in faculty[k]:
                    same[k][u] = 1
    for p in same:
        count = 0
        for j in range(len(group)):
            if same[p][j] == 1:
                count += 1
        if count == len(group):
            result[i].append(p)
                    
for i in result:
    if len(i) != 0:
        print(" ".join(i))
    else:
        print("None")
# 1680291, 2022-11-12 10:50:54, PPPP (100%)

N,M,K = input().split()
N = int(N)
M = int(M)
K = int(K)
faculty = {}
result = [[] for i in range(K)]
for i in range(N):
    a,b = input().split()
    if b not in faculty: faculty[b] = set()
    faculty[b].add(a)       
guess = {}
for i in range(M):
    x = input().split()
    if x[0] not in guess: guess[x[0]] = set()
    for i in x[1:]:
        guess[x[0]].add(i)
for i in range(K):
    same = {}
    group = input().split()
    for fac in faculty:
        same[fac]=[0 for nm in range(len(group))]
    for u in range(len(group)):
        for j in guess[group[u]]:
            for k in faculty:
                if j in faculty[k]:
                    same[k][u] = 1
    for p in same:
        count = 0
        for j in range(len(group)):
            if same[p][j] == 1:
                count += 1
        if count == len(group):
            result[i].append(p)
            
for i in range(len(result)):
    result[i].sort()
for i in result:
    if len(i) != 0:
        print(" ".join(i))
    else:
        print("None")
    

6530046521
# 1680004, 2022-11-12 10:37:28, x--- (0%)

N, M, K = [int(e) for e in input().split()]
gf = {} #{grad:fac, ...}
for i in range(N):
    grad, fac = input().split()
    if fac not in gf:
        gf[grad] = fac   
#print(fg)
        
vf = {} #{visit:[fac,fac,..]}
for i in range(M):
    x = input().split()
    visit = x[0]
    grad = x[1:]
    if visit not in vf:
        vf[visit] = set()
    for g in grad:
        vf[visit].add(gf[g])
print(vf)

for i in range(K):
    ppp = input().split()
    res = vf[ppp[0]]
    for k in range(len(ppp)-1):
        res = res.intersection(vf[ppp[k+1]])
    resl = []
    for r in res:
        resl.append(r)
    if len(resl) > 0:
        print(' '.join(resl))
    else: print('None')
# 1680013, 2022-11-12 10:37:46, xP-- (25%)

N, M, K = [int(e) for e in input().split()]
gf = {} #{grad:fac, ...}
for i in range(N):
    grad, fac = input().split()
    if fac not in gf:
        gf[grad] = fac   
#print(fg)
        
vf = {} #{visit:[fac,fac,..]}
for i in range(M):
    x = input().split()
    visit = x[0]
    grad = x[1:]
    if visit not in vf:
        vf[visit] = set()
    for g in grad:
        vf[visit].add(gf[g])

for i in range(K):
    ppp = input().split()
    res = vf[ppp[0]]
    for k in range(len(ppp)-1):
        res = res.intersection(vf[ppp[k+1]])
    resl = []
    for r in res:
        resl.append(r)
    if len(resl) > 0:
        print(' '.join(resl))
    else: print('None')
# 1680068, 2022-11-12 10:40:04, xPPP (75%)

N, M, K = [int(e) for e in input().split()]
gf = {} #{grad:fac, ...}
for i in range(N):
    grad, fac = input().split()
    if fac not in gf:
        gf[grad] = fac   
#print(gf)
        
vf = {} #{visit:[fac,fac,..]}
for i in range(M):
    x = input().split()
    visit = x[0]
    grad = x[1:]
    if visit not in vf:
        vf[visit] = set()
    for g in grad:
        vf[visit].add(gf[g])
#print(vf)

for i in range(K):
    ppp = input().split()
    res = vf[ppp[0]]
    for k in range(len(ppp)-1):
        res = res.intersection(vf[ppp[k+1]])
    resl = []
    for r in res:
        resl.append(r)
    resl.sort()
    if len(resl) > 0:
        print(' '.join(resl))
    else: print('None')
# 1680193, 2022-11-12 10:45:50, xPPP (75%)

N, M, K = [int(e) for e in input().split()]
gf = {} #{grad:fac, ...}
for i in range(N):
    grad, fac = input().split()
    if fac not in gf:
        gf[grad] = fac   
#print(gf)
        
vf = {} #{visit:[fac,fac,..]}
for i in range(M):
    x = input().split()
    visit = x[0]
    grad = x[1:]
    if visit not in vf:
        vf[visit] = set()
    for g in grad:
        vf[visit].add(gf[g])
#print(vf)

for i in range(K):
    ppp = input().split()
    res = vf[ppp[0]]
    for k in range(len(ppp)-1):
        res = res.intersection(vf[ppp[k+1]])
    resl = []
    for r in res:
        resl.append(r)
    resl.sort()
    if len(resl) > 0:
        print(' '.join(resl))
    else:
        print('None')
# 1680218, 2022-11-12 10:47:18, PPPP (100%)

N, M, K = [int(e) for e in input().split()]
gf = {} #{grad:fac, ...}
for i in range(N):
    grad, fac = input().split()
    if grad not in gf:
        gf[grad] = fac   
#print(gf)
        
vf = {} #{visit:[fac,fac,..]}
for i in range(M):
    x = input().split()
    visit = x[0]
    grad = x[1:]
    if visit not in vf:
        vf[visit] = set()
    for g in grad:
        vf[visit].add(gf[g])
#print(vf)

for i in range(K):
    ppp = input().split()
    res = vf[ppp[0]]
    for k in range(len(ppp)-1):
        res = res.intersection(vf[ppp[k+1]])
    resl = []
    for r in res:
        resl.append(r)
    resl.sort()
    if len(resl) > 0:
        print(' '.join(resl))
    else:
        print('None')

6530137021
# 1679411, 2022-11-12 10:09:18, PP-- (50%)

n,m,k = [int(e) for e in input().split()]
fac = {} #{name:fac}
for i in range(n):
    name,f = input().split()
    fac[name] = f
p = {}
for i in range(m): #{[x[0]:{fac[x[0],fac]],
    x = input().split()
    if x[0] not in p:
        p[x[0]] = set()
    for e in x[1:]:
        p[x[0]].add(fac[e])
for i in range(k):
    ans = set(fac.values())     
    a = input().split()
    for i in range(len(a)):
        ans = ans & (p[a[i]])
    if len(ans) == 0:
        print('None')
    else:
        for e in ans:
            print(e)
        
    
   
        
    

# 1679986, 2022-11-12 10:36:31, PP-- (50%)

n,m,k = [int(e) for e in input().split()]
fac = {} #{name:fac}
for i in range(n):
    name,f = input().split()
    fac[name] = f
p = {}
for i in range(m): #{[x[0]:{fac[x[0],fac]],
    x = input().split()
    if x[0] not in p:
        p[x[0]] = set()
    for e in x[1:]:
        p[x[0]].add(fac[e])
for i in range(k):
    ans = set(fac.values())     
    a = input().split()
    for i in range(len(a)):
        ans = ans & (p[a[i]])
    if len(ans) == 0:
        print('None')
    else:
        a = []
        for e in ans:
            a.append(e)
        a.sort()
        print(','.join(a))
# 1680008, 2022-11-12 10:37:38, compilation error (0%)

n,m,k = [int(e) for e in input().split()]
fac = {} #{name:fac}
for i in range(n):
    name,f = input().split()
    fac[name] = f
p = {}
for i in range(m): #{[x[0]:{fac[x[0],fac]],
    x = input().split()
    if x[0] not in p:
        p[x[0]] = set()
    for e in x[1:]:
        p[x[0]].add(fac[e])
for i in range(k):
    ans = set(fac.values())     
    a = input().split()
    for i in range(len(a)):
        ans = ans & (p[a[i]])
    if len(ans) == 0:
        print('None')
    else:
       else:
        a = []
        for e in ans:
            a.append(e)
        a.sort()
        print(' '.join(a))
# 1680021, 2022-11-12 10:38:12, compilation error (0%)

n,m,k = [int(e) for e in input().split()]
fac = {} #{name:fac}
for i in range(n):
    name,f = input().split()
    fac[name] = f
p = {}
for i in range(m): #{[x[0]:{fac[x[0],fac]],
    x = input().split()
    if x[0] not in p:
        p[x[0]] = set()
    for e in x[1:]:
        p[x[0]].add(fac[e])
for i in range(k):
    ans = set(fac.values())     
    a = input().split()
    for i in range(len(a)):
        ans = ans & (p[a[i]])
    if len(ans) == 0:
        print('None')
    else:
       else:
        a = []
        for e in ans:
            a.append(e)
        a.sort()
        print(' '.join(a))
# 1680030, 2022-11-12 10:38:21, PPPP (100%)

n,m,k = [int(e) for e in input().split()]
fac = {} #{name:fac}
for i in range(n):
    name,f = input().split()
    fac[name] = f
p = {}
for i in range(m): #{[x[0]:{fac[x[0],fac]],
    x = input().split()
    if x[0] not in p:
        p[x[0]] = set()
    for e in x[1:]:
        p[x[0]].add(fac[e])
for i in range(k):
    ans = set(fac.values())     
    a = input().split()
    for i in range(len(a)):
        ans = ans & (p[a[i]])
    if len(ans) == 0:
        print('None')
    else:
        a = []
        for e in ans:
            a.append(e)
        a.sort()
        print(' '.join(a))

6530194721
# 1679809, 2022-11-12 10:28:42, ---- (0%)

print(None)
# 1681087, 2022-11-12 11:18:32, ---- (0%)

N,M,K=input().split()
all ={}
nf ={}
for i in range(int(N)):
    name,som=input().split()
    all[name] =som
for i in range(int(M)):
    k=input().split()
    k1=k[1:]
    if k[0] not in nf:
        nf[k[0]] = []
    nf[k[0]]+=k1
for i in range(int(K)):
    l = []
    ans =''
    s =set()
    y=input().split()
    for i in nf[y[0]]:
        s.add(all[i])
    print(s)
    for m in y[1:]:
        p =set()
        for k in nf[m]: 
            p.add(all[k])
            print(p)
        s&=p
        print(s)
    if len(s) == 0:
        print(None)
    else:
        for i in s:
            l.append(i)
        l.sort()
        for i in l:
            ans+=i
        print(ans)
# 1681170, 2022-11-12 11:20:42, xxxx (0%)

N,M,K=input().split()
all ={}
nf ={}
for i in range(int(N)):
    name,som=input().split()
    all[name] =som
for i in range(int(M)):
    k=input().split()
    k1=k[1:]
    if k[0] not in nf:
        nf[k[0]] = []
    nf[k[0]]+=k1
for i in range(int(K)):
    l = []
    ans = ''
    s =set()
    y=input().split()
    for i in nf[y[0]]:
        s.add(all[i])
    print(s)
    for m in y[1:]:
        p =set()
        for k in nf[m]: 
            p.add(all[k])
            print(p)
        s&=p
        print(s)
    if len(s) == 0:
        print(None)
    else:
        for i in s:
            l.append(i)
        l.sort()
        for i in l:
            ans+=i+' '
        print(strip(ans))
# 1681225, 2022-11-12 11:21:52, xxxx (0%)

N,M,K=input().split()
all ={}
nf ={}
for i in range(int(N)):
    name,som=input().split()
    all[name] =som
for i in range(int(M)):
    k=input().split()
    k1=k[1:]
    if k[0] not in nf:
        nf[k[0]] = []
    nf[k[0]]+=k1
for i in range(int(K)):
    l = []
    ans = ''
    s =set()
    y=input().split()
    for i in nf[y[0]]:
        s.add(all[i])
    print(s)
    for m in y[1:]:
        p =set()
        for k in nf[m]: 
            p.add(all[k])
            print(p)
        s&=p
        print(s)
    if len(s) == 0:
        print(None)
    else:
        for i in s:
            l.append(i)
        l.sort()
        for i in l:
            ans+=i+' '
        a.strip()
        print(ans)
            
# 1681304, 2022-11-12 11:23:59, PPPP (100%)

N,M,K=input().split()
all ={}
nf ={}
for i in range(int(N)):
    name,som=input().split()
    all[name] =som
for i in range(int(M)):
    k=input().split()
    k1=k[1:]
    if k[0] not in nf:
        nf[k[0]] = []
    nf[k[0]]+=k1
for i in range(int(K)):
    l = []
    ans = ''
    s =set()
    y=input().split()
    for i in nf[y[0]]:
        s.add(all[i])
    for m in y[1:]:
        p =set()
        for k in nf[m]: 
            p.add(all[k])
        s&=p
    if len(s) == 0:
        print(None)
    else:
        for i in s:
            l.append(i)
        l.sort()
        for i in l:
            ans+=i+' '
        ans.strip()
        print(ans)

6531307521
# 1679831, 2022-11-12 10:29:36, ---- (0%)

a,b,c = [int(e) for e in input().split()]
fac = {}
congrat = {}
visit= []
visitfac = []
con = set()
p = []
for i in range(a) :
    name,faculty = input().split()
    fac[name] = faculty
for i in range(b) :
    cong = input().split()
    congrat[cong[0]] = []
    for e in cong[1::] :
        congrat[cong[0]].append(e)
for i in range(c) :
    name_visit = input().split()
    for e in name_visit :
        visit.append(congrat[e])
    for e in visit :
        visitfac.append({fac[c] for c in e})
    #print(visit)
    print(visitfac)
    intersec = visitfac[0].intersection(visitfac[1]) 
    for i in range(len(visitfac)) :
        intersec = intersec.intersection(visitfac[i])
    #print(intersec)
    if intersec == set() :
        print("None")
    else :
        for e in intersec :
           p.append(e)
        print(" ".join(p)) 
    visitfac = []
    visit = []
# 1679880, 2022-11-12 10:31:14, ---- (0%)

a,b,c = [int(e) for e in input().split()]
fac = {}
congrat = {}
visit= []
visitfac = []
con = set()
p = []
for i in range(a) :
    name,faculty = input().split()
    fac[name] = faculty
for i in range(b) :
    cong = input().split()
    congrat[cong[0]] = []
    for e in cong[1::] :
        congrat[cong[0]].append(e)
for i in range(c) :
    name_visit = input().split()
    for e in name_visit :
        visit.append(congrat[e])
    for e in visit :
        visitfac.append({fac[c] for c in e})
    #print(visit)
    print(visitfac)
    intersec = visitfac[0].intersection(visitfac[1]) 
    for i in range(len(visitfac)) :
        intersec = intersec.intersection(visitfac[i])
    #print(intersec)
    if intersec == set() :
        print("None")
    else :
        for e in intersec :
           p.append(e)
        p.sort()
        print(" ".join(p)) 
    visitfac = []
    visit = []
# 1680009, 2022-11-12 10:37:39, ---- (0%)

a,b,c = [int(e) for e in input().split()]
fac = {}
congrat = {}
visit= []
visitfac = []
con = set()
p = []
for i in range(a) :
    name,faculty = input().split()
    fac[name] = faculty
for i in range(b) :
    cong = input().split()
    congrat[cong[0]] = []
    for e in cong[1::] :
        congrat[cong[0]].append(e)
for i in range(c) :
    name_visit = input().split()
    for e in name_visit :
        visit.append(congrat[e])
    for e in visit :
        visitfac.append({fac[c] for c in e})
    #print(visit)
    #print(visitfac)
    intersec = visitfac[0].intersection(visitfac[1]) 
    for i in range(len(visitfac)) :
        intersec = intersec.intersection(visitfac[i])
    #print(intersec)
    if intersec == set() :
        print("None")
    else :
        for e in intersec :
           p.append(e)
        p.sort()
        print(" ".join(p)) 
    visitfac = []
    visit = []
# 1680026, 2022-11-12 10:38:18, ---- (0%)

a,b,c = [int(e) for e in input().split()]
fac = {}
congrat = {}
visit= []
visitfac = []
con = set()
p = []
for i in range(a) :
    name,faculty = input().split()
    fac[name] = faculty
for i in range(b) :
    cong = input().split()
    congrat[cong[0]] = []
    for e in cong[1::] :
        congrat[cong[0]].append(e)
for i in range(c) :
    name_visit = input().split()
    for e in name_visit :
        visit.append(congrat[e])
    for e in visit :
        visitfac.append({fac[c] for c in e})
    #print(visit)
    #print(visitfac)
    intersec = visitfac[0].intersection(visitfac[1]) 
    for i in range(len(visitfac)) :
        intersec = intersec.intersection(visitfac[i])
    #print(intersec)
    if intersec == set() :
        print("None")
    else :
        for e in intersec :
           p.append(e)
        p.sort()
        print(" ".join(p)) 
    visitfac = []
    visit = []
# 1680090, 2022-11-12 10:41:04, PPPP (100%)

a,b,c = [int(e) for e in input().split()]
fac = {}
congrat = {}
visit= []
visitfac = []
p = []
for i in range(a) :
    name,faculty = input().split()
    fac[name] = faculty
for i in range(b) :
    cong = input().split()
    congrat[cong[0]] = []
    for e in cong[1::] :
        congrat[cong[0]].append(e)
for i in range(c) :
    name_visit = input().split()
    for e in name_visit :
        visit.append(congrat[e])
    for e in visit :
        visitfac.append({fac[c] for c in e})
    #print(visit)
    #print(visitfac)
    intersec = visitfac[0].intersection(visitfac[1]) 
    for i in range(len(visitfac)) :
        intersec = intersec.intersection(visitfac[i])
    #print(intersec)
    if intersec == set() :
        print("None")
    else :
        for e in intersec :
           p.append(e)
        p.sort()
        print(" ".join(p)) 
    visitfac = []
    visit = []
    p = []

6230089221
# 1679291, 2022-11-12 10:02:24, ---- (0%)

n,m,k=[int(e) for e in input().split(" ")]
bundit={}
people={}
for i in range(n):
    name,fac=input().split(" ")
    if fac in bundit:
        bundit[fac].add(name)
    else:
        bundit[fac]=set()
        bundit[fac].add(name)
for i in range(m):
    s=input().split(" ")
    people[s[0]]=set()
    for i in range(1,len(s),1):
        people[s[0]].add(s[i])
meet=[]
for i in range(k):
    p=input().split(" ")
    for i in range(len(p)):
        if i==0:
            f=set()
            q=people[p[i]]
            for ea in q:
                for eiei in bundit:
                    if ea in bundit[eiei]:
                        f.add(eiei)               
        else:
            ff=set()
            q=people[p[i]]
            for ea in q:
                for eiei in bundit:
                    if ea in bundit[eiei]:
                        ff.add(eiei)
            f=f.intersection(ff)
    if f==set():
        print("None")
    else:
        for e in f:
            meet.append(e)
        meet.sort()
        print(" ".join(meet))
# 1679340, 2022-11-12 10:05:20, ---- (0%)

n,m,k=[int(e) for e in input().split(" ")]
bundit={}
people={}
for i in range(n):
    name,fac=input().split(" ")
    if fac in bundit:
        bundit[fac].add(name)
    else:
        bundit[fac]=set()
        bundit[fac].add(name)
for i in range(m):
    s=input().split(" ")
    people[s[0]]=set()
    for i in range(1,len(s),1):
        people[s[0]].add(s[i])
meet=[]
for i in range(k):
    p=input().split(" ")
    for i in range(len(p)):
        if i==0:
            f=set()
            q=people[p[i]]
            for ea in q:
                for eiei in bundit:
                    if ea in bundit[eiei]:
                        f.add(eiei)               
        else:
            ff=set()
            q=people[p[i]]
            for ea in q:
                for eiei in bundit:
                    if ea in bundit[eiei]:
                        ff.add(eiei)
            f=f.intersection(ff)
    if f==set():
        print("None")
    else:
        for e in f:
            meet.append(e)
        meet.sort()
        print(" ".join(meet))
# 1679394, 2022-11-12 10:08:17, ---- (0%)

N,M,K=[int(e) for e in input().split(" ")]
bundit={}
people={}
for i in range(N):
    name,fac=input().split(" ")
    if fac in bundit:
        bundit[fac].add(name)
    else:
        bundit[fac]=set()
        bundit[fac].add(name)
for i in range(M):
    s=input().split(" ")
    people[s[0]]=set()
    for i in range(1,len(s),1):
        people[s[0]].add(s[i])
meet=[]
for i in range(K):
    p=input().split(" ")
    for i in range(len(p)):
        if i==0:
            f=set()
            q=people[p[i]]
            for ea in q:
                for eiei in bundit:
                    if ea in bundit[eiei]:
                        f.add(eiei)               
        else:
            ff=set()
            q=people[p[i]]
            for ea in q:
                for eiei in bundit:
                    if ea in bundit[eiei]:
                        ff.add(eiei)
            f=f.intersection(ff)
    if f==set():
        print("None")
    else:
        for e in f:
            meet.append(e)
        meet.sort()
        print(" ".join(meet))
# 1679424, 2022-11-12 10:10:12, PPPP (100%)

N,M,K=[int(e) for e in input().split(" ")]
bundit={}
people={}
for i in range(N):
    name,fac=input().split(" ")
    if fac in bundit:
        bundit[fac].add(name)
    else:
        bundit[fac]=set()
        bundit[fac].add(name)
for i in range(M):
    s=input().split(" ")
    people[s[0]]=set()
    for i in range(1,len(s),1):
        people[s[0]].add(s[i])
meet=[]
for i in range(K):
    p=input().split(" ")
    for i in range(len(p)):
        if i==0:
            f=set()
            q=people[p[i]]
            for ea in q:
                for eiei in bundit:
                    if ea in bundit[eiei]:
                        f.add(eiei)               
        else:
            ff=set()
            q=people[p[i]]
            for ea in q:
                for eiei in bundit:
                    if ea in bundit[eiei]:
                        ff.add(eiei)
            f=f.intersection(ff)
    if f==set():
        print("None")
    else:
        for e in f:
            meet.append(e)
        meet.sort()
        print(" ".join(meet))
        meet=[]

6431025421
# 1679584, 2022-11-12 10:18:43, compilation error (0%)

d1 = {}
x =int(input().spit())
for i in range((x[0])):
    y = input().split()
    d[y[0]] = y[1]
d2 = {}
for j in range((x[1])):
    z = input().split()
    d2[z[0]] = z[1:]
d3 = []
for k in range((x[2])):
    asd = input().split()
    d3.append(asd)
for l in range(len(d3)):
    for e in d3[i]:
# 1679964, 2022-11-12 10:35:20, ---- (0%)

d1 = {}
x =[e for e in input().split()]
for i in range(int(x[0])):
    y = input().split()
    d1[y[1]] = y[0]
d2 = {}
for j in range(int(x[1])):
    z = input().split()
    d2[z[0]] = z[1:]
d3 = []
for k in range(int(x[2])):
    asd = input().split()
    d3.append(asd)
# 1680419, 2022-11-12 10:55:13, ---- (0%)

d1 = {}
x =[e for e in input().split()]
for i in range(int(x[0])):
    y = input().split()
    d1[y[1]] = y[0]
d2 = {}
for j in range(int(x[1])):
    z = input().split()
    d2[z[0]] = z[1:]
d3 = []
for k in range(int(x[2])):
    asd = input().split()
    d3.append(asd)
# 1680603, 2022-11-12 11:03:08, PPPP (100%)

x = input().split()
shank = {}
shank1 = []
for k in range(int(x[0])):
    y = input().split()
    if y[1] not in shank:
        shank[y[1]] = []
    shank[y[1]].append(y[0])
    shank1.append(y[1])
rayly = {}
for k in range(int(x[1])):
    z = input().split()
    rayly[z[0]] = z[1:]
zoro = []
for k in range(int(x[2])):
    q = input().split()
    p = []
    roger = {}
    crocs = set()
    for i in range(len(q)):
        roger[q[i]] = set()
        p.append(q[i])
    
    for i in range(len(p)):
        for e in rayly[p[i]]:
            for j in range(len(shank)):
                if e in shank[shank1[j]]:
                    roger[q[i]].add(shank1[j])
    for i in range(1,len(roger)):
        newgate = roger[p[0]] & roger[p[i]]
        roger[p[0]] = newgate
    if len(newgate) == 0:
        zoro.append('None')
    else :
        zoro.append(list(newgate))
for e in zoro :
    if e == 'None':
        print(e)
    else:
        print(' '.join(sorted(e)))

6530056821
# 1680076, 2022-11-12 10:40:29, ---- (0%)






def mli(fn):
    with open(fn, 'r', encoding = 'utf-8') as f:
        return [l.strip().split() for l in f]

n = input().split()
d = {}
o = {}
g = {}
for i in range(int(n[0])):
    p, f  = input().split()
    d[p] = f
##print(d)
for i in range(int(n[1])):
    l = input().split()
    for j in range(1,len(l)):
        if l[0] not in g.keys():
            g[l[0]] = [l[j]]
        else:
            g[l[0]].append(l[j])
##print(g)
for i in range(int(n[2])):
    l = input().split()
    for p in l:
        if str(i) not in o.keys():
            o[str(i)] = [p]
        else:
            o[str(i)].append(p)
print(o)
nd = {}
for k,v in g.items():
    for p in v:
        
        if k not in nd.keys():
##            if p in d.keys():
                nd[k] = {d[p]}
                print(nd[k], d[p])
        elif k in nd.keys():
##            if p in d.keys():
                nd[k].add(d[p])
                print(nd[k], d[p])
print(nd)
for k,v in sorted(o.items()):
    t = nd
    r = []
    for p in v:
        print(p)
        for m,l in t.items():
            if m in v:
                r.append(l)
    for i in range(len(r)):
        
        r[0] = r[0].intersection(r[i])
        print(r[0])
    if r[0] == set():
        print('None')
    else:
        print(' '.join(list(r[0])))
    
        
































# 1680084, 2022-11-12 10:40:51, ---- (0%)






def mli(fn):
    with open(fn, 'r', encoding = 'utf-8') as f:
        return [l.strip().split() for l in f]

n = input().split()
d = {}
o = {}
g = {}
for i in range(int(n[0])):
    p, f  = input().split()
    d[p] = f
##print(d)
for i in range(int(n[1])):
    l = input().split()
    for j in range(1,len(l)):
        if l[0] not in g.keys():
            g[l[0]] = [l[j]]
        else:
            g[l[0]].append(l[j])
##print(g)
for i in range(int(n[2])):
    l = input().split()
    for p in l:
        if str(i) not in o.keys():
            o[str(i)] = [p]
        else:
            o[str(i)].append(p)
##print(o)
nd = {}
for k,v in g.items():
    for p in v:
        
        if k not in nd.keys():
##            if p in d.keys():
                nd[k] = {d[p]}
                print(nd[k], d[p])
        elif k in nd.keys():
##            if p in d.keys():
                nd[k].add(d[p])
                print(nd[k], d[p])
##print(nd)
for k,v in sorted(o.items()):
    t = nd
    r = []
    for p in v:
##        print(p)
        for m,l in t.items():
            if m in v:
                r.append(l)
    for i in range(len(r)):
        
        r[0] = r[0].intersection(r[i])
##        print(r[0])
    if r[0] == set():
        print('None')
    else:
        print(' '.join(list(r[0])))
    
        
































# 1680104, 2022-11-12 10:41:55, PP-- (50%)






def mli(fn):
    with open(fn, 'r', encoding = 'utf-8') as f:
        return [l.strip().split() for l in f]

n = input().split()
d = {}
o = {}
g = {}
for i in range(int(n[0])):
    p, f  = input().split()
    d[p] = f
##print(d)
for i in range(int(n[1])):
    l = input().split()
    for j in range(1,len(l)):
        if l[0] not in g.keys():
            g[l[0]] = [l[j]]
        else:
            g[l[0]].append(l[j])
##print(g)
for i in range(int(n[2])):
    l = input().split()
    for p in l:
        if str(i) not in o.keys():
            o[str(i)] = [p]
        else:
            o[str(i)].append(p)
##print(o)
nd = {}
for k,v in g.items():
    for p in v:
        
        if k not in nd.keys():
##            if p in d.keys():
                nd[k] = {d[p]}
##                print(nd[k], d[p])
        elif k in nd.keys():
##            if p in d.keys():
                nd[k].add(d[p])
##                print(nd[k], d[p])
##print(nd)
for k,v in sorted(o.items()):
    t = nd
    r = []
    for p in v:
##        print(p)
        for m,l in t.items():
            if m in v:
                r.append(l)
    for i in range(len(r)):
        
        r[0] = r[0].intersection(r[i])
##        print(r[0])
    if r[0] == set():
        print('None')
    else:
        print(' '.join(list(r[0])))
    
        
































# 1680129, 2022-11-12 10:42:54, PPPP (100%)






def mli(fn):
    with open(fn, 'r', encoding = 'utf-8') as f:
        return [l.strip().split() for l in f]

n = input().split()
d = {}
o = {}
g = {}
for i in range(int(n[0])):
    p, f  = input().split()
    d[p] = f
##print(d)
for i in range(int(n[1])):
    l = input().split()
    for j in range(1,len(l)):
        if l[0] not in g.keys():
            g[l[0]] = [l[j]]
        else:
            g[l[0]].append(l[j])
##print(g)
for i in range(int(n[2])):
    l = input().split()
    for p in l:
        if str(i) not in o.keys():
            o[str(i)] = [p]
        else:
            o[str(i)].append(p)
##print(o)
nd = {}
for k,v in g.items():
    for p in v:
        
        if k not in nd.keys():
##            if p in d.keys():
                nd[k] = {d[p]}
##                print(nd[k], d[p])
        elif k in nd.keys():
##            if p in d.keys():
                nd[k].add(d[p])
##                print(nd[k], d[p])
##print(nd)
for k,v in sorted(o.items()):
    t = nd
    r = []
    for p in v:
##        print(p)
        for m,l in t.items():
            if m in v:
                r.append(l)
    for i in range(len(r)):
        
        r[0] = r[0].intersection(r[i])
##        print(r[0])
    if r[0] == set():
        print('None')
    else:
        print(' '.join(sorted(r[0])))
    
        

































6530092321
# 1679301, 2022-11-12 10:02:57, ---- (0%)

t = input().split()
student = {}
guest = {}
interested = []

for i in range(int(t[0])):
    temp = input().split()
    student.update({temp[0]: temp[1]})

for i in range(int(t[1])):
    temp = input().split()
    guest.update({temp[0]: temp[1:]})

first = True
for i in range(int(t[2])):
    temp = input().split()
    faculty = []
    for j in temp:
        templst = []
        for k in guest[j]:
            if first:
                faculty.append(student[k])
            else:
                templst.append(student[k])
        if not first:
            faculty = list(set(faculty) & set(templst))
        first = False
    if len(faculty) < 1:
        print('None')
    else:
        print(*sorted(faculty))


# 1679384, 2022-11-12 10:07:42, ---- (0%)

t = input().split()
student = {}
guest = {}
interested = []

for i in range(int(t[0])):
    temp = input().split()
    student.update({temp[0]: temp[1]})

for i in range(int(t[1])):
    temp = input().split()
    guest.update({temp[0]: temp[1:]})

first = True
for i in range(int(t[2])):
    temp = input().split()
    faculty = []
    for j in temp:
        templst = []
        for k in guest[j]:
            if first:
                faculty.append(student[k])
            else:
                templst.append(student[k])
        if not first:
            faculty = list(set(faculty) & set(templst))
        first = False
    if len(faculty) < 1:
        print('None')
    else:
        print(*sorted(faculty))
# 1679697, 2022-11-12 10:23:34, ---- (0%)

t = input().split()
student = {}
guest = {}
interested = []

for i in range(int(t[0])):
    temp = input().split()
    student.update({temp[0]: temp[1]})

for i in range(int(t[1])):
    temp = input().split()
    guest.update({temp[0]: temp[1:]})

first = True
for i in range(int(t[2])):
    temp = input().split()
    faculty = []
    for j in temp:
        templst = []
        for k in guest[j]:
            if first:
                faculty.append(student[k])
            else:
                templst.append(student[k])
        if not first:
            faculty = list(set(faculty) & set(templst))
        first = False
    if len(faculty) < 1:
        print('None')
    else:
        print(*sorted(faculty))
# 1679823, 2022-11-12 10:29:14, PPPP (100%)

t = input().split()
student = {}
guest = {}
interested = []

for i in range(int(t[0])):
    temp = input().split()
    student.update({temp[0]: temp[1]})

for i in range(int(t[1])):
    temp = input().split()
    guest.update({temp[0]: temp[1:]})

for i in range(int(t[2])):
    temp = input().split()
    faculty = []
    first = True
    for j in temp:
        templst = []
        for k in guest[j]:
            if first:
                faculty.append(student[k])
            else:
                templst.append(student[k])
        if not first:
            faculty = list(set(faculty) & set(templst))
        first = False
    if len(faculty) < 1:
        print('None')
    else:
        print(*sorted(faculty))


6530097521
# 1679493, 2022-11-12 10:13:18, PPP- (75%)

N,M,K = input().split()
N = int(N);M = int(M);K = int(K)

facult_N ={}
for i in range(N):
    name,fac = input().split()
    facult_N[name] = fac
    
meet = {}
for i in range(M):
    m = input().split()
    meet[m[0]] = (m[1:])
    
    
def meetyou(facult_N,meet,guest):
    a = meet[guest]
    f = []
    for i in a :
        if i in facult_N:
            f += [facult_N[i]]
    return f
        
    
    
for i in range(K):
    g = input().split()
    all = []
    for i in g:
        all += [meetyou(facult_N,meet,i)]
    for i in range(len(all)-1):
        sss = set(all[i]) & set(all[i+1])
        
    if sss == set():
        print("None")
    else:
        out = ""
        for k in sorted(sss):
            out += k + " "
        print(out[:-1])
    

    
    


# 1679550, 2022-11-12 10:16:18, xxxx (0%)

N,M,K = input().split()
N = int(N);M = int(M);K = int(K)

facult_N ={}
for i in range(N):
    name,fac = input().split()
    facult_N[name] = fac
    
meet = {}
for i in range(M):
    m = input().split()
    meet[m[0]] = (m[1:])
    
    
def meetyou(facult_N,meet,guest):
    a = meet[guest]
    f = []
    for i in a :
        if i in facult_N:
            f += [facult_N[i]]
    return f
        
    
    
for i in range(K):
    g = input().split()
    all = []
    for i in g:
        all += [meetyou(facult_N,meet,i)]
    sss = set(all[i]) 
    for i in range(len(all)-1):
        sss & set(all[i+1])
        
    if sss == set():
        print("None")
    else:
        out = ""
        for k in sorted(sss):
            out += k + " "
        print(out[:-1])
    

    
    


# 1679648, 2022-11-12 10:22:01, PPP- (75%)

N,M,K = input().split()
N = int(N);M = int(M);K = int(K)

facult_N ={}
for i in range(N):
    name,fac = input().split()
    facult_N[name] = fac
    
meet = {}
for i in range(M):
    m = input().split()
    meet[m[0]] = (m[1:])
    
    
def meetyou(facult_N,meet,guest):
    a = meet[guest]
    f = []
    for i in a :
        if i in facult_N:
            f += [facult_N[i]]
    return f
        
    
    
for i in range(K):
    g = input().split()
    all = []
    for i in g:
        all += [meetyou(facult_N,meet,i)]

    for i in range(len(all)-1):
        sss = set(all[i]) & set(all[i+1])
        
    if sss == set():
        print("None")
    else:
        out = ""
        for k in sorted(sss):
            out += k + " "
        print(out[:-1])
    

    
    


# 1681226, 2022-11-12 11:21:54, PPPP (100%)

N,M,K = input().split()
N = int(N);M = int(M);K = int(K)

facult_N ={}
for i in range(N):
    name,fac = input().split()
    facult_N[name] = fac
    
meet = {}
for i in range(M):
    m = input().split()
    meet[m[0]] = (m[1:])
    
    
def meetyou(facult_N,meet,guest):
    a = meet[guest]
    f = []
    for i in a :
        if i in facult_N:
            f += [facult_N[i]]
    return f
        
    
    
for i in range(K):
    g = input().split()
    all = []
    for i in g:
        all += [meetyou(facult_N,meet,i)]
    
    new = set(all[0])
    for i in range(len(all)-1):
        sss = set(all[i]) & set(all[i+1])
        nnn = new & sss
        
    if nnn == set():
        print("None")
    else:
        out = ""
        for k in sorted(nnn):
            out += k + " "
        print(out[:-1])
    

    
    




6530135721
# 1679100, 2022-11-12 09:52:43, P-P- (50%)

#n = {nisit : kana}
#v = {v : {facilty}}
a,b,c = input().split()
a = int(a)
b = int(b)
c = int(c)
n={}
v={}
for i in range(a):
    ni,fa = input().split()
    if ni not in n: n[ni] = fa
    
for i in range(b):
    k = input().split()
    if k[0] not in v:
        v[k[0]] = set()
        for i in range(1,len(k)):
            v[k[0]].add(n[k[i]])
            
for i in range(c):
    ans = []
    tot = set()
    bb = input().split()
    for i in bb:
        tot = tot & v[i]
    for i in bb:
        tot = tot | v[i]
    for i in tot:
        ans.append(i)
    ans.sort()
    print(' '.join(ans))
#print(n)
#print(v)
    

# 1679124, 2022-11-12 09:53:43, P-P- (50%)

#n = {nisit : kana}
#v = {v : {facilty}}
a,b,c = input().split()
a = int(a)
b = int(b)
c = int(c)
n={}
v={}
for i in range(a):
    ni,fa = input().split()
    if ni not in n: n[ni] = fa
    
for i in range(b):
    k = input().split()
    if k[0] not in v:
        v[k[0]] = set()
        for i in range(1,len(k)):
            v[k[0]].add(n[k[i]])
            
for i in range(c):
    ans = []
    tot = set()
    bb = input().split()
    for i in bb:
        tot = tot & v[i]
    for i in bb:
        tot = tot | v[i]
    for i in tot:
        ans.append(i)
    ans.sort()
    if len(ans) > 0: print(' '.join(ans))
    else: print('None')
#print(n)
#print(v)
    

# 1679219, 2022-11-12 09:59:02, ---- (0%)

#n = {nisit : kana}
#v = {v : {facilty}}
a,b,c = input().split()
a = int(a)
b = int(b)
c = int(c)
n={}
v={}
for i in range(a):
    ni,fa = input().split()
    if ni not in n: n[ni] = fa
    
for i in range(b):
    k = input().split()
    if k[0] not in v:
        v[k[0]] = set()
        for i in range(1,len(k)):
            v[k[0]].add(n[k[i]])
            
for i in range(c):
    print(v)
    ans = []
    tot = set()
    bb = input().split()
    print(tot)
    for i in bb:
        tot = tot | v[i]
    print(tot)
    for i in bb:
        tot = tot & v[i]
    print(tot)
    for i in tot:
        ans.append(i)
    ans.sort()
    if len(ans) > 0: print(' '.join(ans))
    else: print('None')
#print(n)
#print(v)
    

# 1679226, 2022-11-12 09:59:22, PPPP (100%)

#n = {nisit : kana}
#v = {v : {facilty}}
a,b,c = input().split()
a = int(a)
b = int(b)
c = int(c)
n={}
v={}
for i in range(a):
    ni,fa = input().split()
    if ni not in n: n[ni] = fa
    
for i in range(b):
    k = input().split()
    if k[0] not in v:
        v[k[0]] = set()
        for i in range(1,len(k)):
            v[k[0]].add(n[k[i]])
            
for i in range(c):
    #print(v)
    ans = []
    tot = set()
    bb = input().split()
    #print(tot)
    for i in bb:
        tot = tot | v[i]
    #print(tot)
    for i in bb:
        tot = tot & v[i]
    #print(tot)
    for i in tot:
        ans.append(i)
    ans.sort()
    if len(ans) > 0: print(' '.join(ans))
    else: print('None')
#print(n)
#print(v)

6530166121
# 1679745, 2022-11-12 10:25:30, PP-- (50%)

N, M, K = [int(e) for e in input().split()]
name = {}; fac = {}
for i in range(N):
    n, f = input().split()
    fac[n] = f
    if f not in name:
        name[f] = []
    else:
        name[f].append(n)
# got 2 dict --> {name: fac,..} , {faculty: name,..}

herefor = {}
for i in range(M):
    b = input().split()
    herefor[b[0]] = set()
    for e in b[1:]:
        herefor[b[0]].add(fac[e])
    # got herefor = { guest: {fac1, fac2,...} }
# print(name, fac, herefor) ####
    
for i in range(K):
    found = False
    c = input().split()
    st = herefor[c[0]]
    for i in range(len(c) - 1):
        st = herefor[c[i]] & herefor[c[i+1]]
    if len(st) == 0:
        print('None')
    else:
        print(''.join(st))
    


# 1679838, 2022-11-12 10:29:55, PP-- (50%)

N, M, K = [int(e) for e in input().split()]
name = {}; fac = {}
for i in range(N):
    n, f = [e.strip() for e in input().split()]
    fac[n] = f
    if f not in name:
        name[f] = []
    else:
        name[f].append(n)
# got 2 dict --> {name: fac,..} , {faculty: name,..}

herefor = {}
for i in range(M):
    b = input().split()
    herefor[b[0]] = set()
    for e in b[1:]:
        herefor[b[0]].add(fac[e])
    # got herefor = { guest: {fac1, fac2,...} }
# print(name, fac, herefor) ####
    
for i in range(K):
    found = False
    c = input().split()
    st = herefor[c[0]]
    for i in range(len(c) - 1):
        st = herefor[c[i]] & herefor[c[i+1]]
    if len(st) == 0:
        print('None')
    else:
        print(''.join(sorted(st)))

# 1680724, 2022-11-12 11:07:10, PPP- (75%)

N, M, K = [int(e) for e in input().split()]
name = {}; fac = {}
for i in range(N):
    n, f = [e.strip() for e in input().split()]
    fac[n] = f
    if f not in name:
        name[f] = []
    else:
        name[f].append(n)
# got 2 dict --> {name: fac,..} , {faculty: name,..}

herefor = {}
for i in range(M):
    b = input().split()
    herefor[b[0]] = set()
    for e in b[1:]:
        herefor[b[0]].add(fac[e])
    # got herefor = { guest: {fac1, fac2,...} }
# print(name, fac, herefor) ####
    
for i in range(K):
    found = False
    c = input().split()
    st = herefor[c[0]]
    for i in range(len(c) - 1):
        st = herefor[c[i]] & herefor[c[i+1]]
    if len(st) == 0:
        print('None')
    else:
        print(' '.join(sorted(st)))

# 1680825, 2022-11-12 11:10:39, PPPP (100%)

N, M, K = [int(e) for e in input().split()]
name = {}; fac = {}
for i in range(N):
    n, f = [e.strip() for e in input().split()]
    fac[n] = f
    if f not in name:
        name[f] = []
    else:
        name[f].append(n)
# got 2 dict --> {name: fac,..} , {faculty: name,..}

herefor = {}
for i in range(M):
    b = input().split()
    herefor[b[0]] = set()
    for e in b[1:]:
        herefor[b[0]].add(fac[e])
    # got herefor = { guest: {fac1, fac2,...} }
# print(name, fac, herefor) ####
    
for i in range(K):
    found = False
    c = input().split()
    st = herefor[c[0]]
    for i in range(len(c) - 1):
        st &= herefor[c[i]] & herefor[c[i+1]]
    if len(st) == 0:
        print('None')
    else:
        print(' '.join(sorted(st)))

6530196021
# 1679377, 2022-11-12 10:07:02, PP-- (50%)

N,M,K = input().split() ; N = int(N) ; M = int(M) ; K = int(K)
d1 = {}
for i in range(N):
    name,f = input().split() ; name = name.strip() ; f = f.strip()
    d1[name] = f
    
s1 = set()
d2 = {}
for j in range(M):
    x = input().split()
    guest = x[0] ; n = x[1:]
    for e in n:
        s1.add(d1[e])
    d2[guest] = s1
    s1 = set()
ans = []
for k in range(K):
    g = input().split()
    s = d2[g[0]]
    for w in g:
        s = s.intersection(d2[w])
    if s == set():
        ans.append(['None'])
    else:
        a = list(s)
        a.sort()
        ans.append(a)
for x in ans:
    x = ', '.join(x)
    print(x)
# 1679399, 2022-11-12 10:08:38, ---- (0%)

N,M,K = input().split() ; N = int(N) ; M = int(M) ; K = int(K)
d1 = {}
for i in range(N):
    name,f = input().split() ; name = name.strip() ; f = f.strip()
    d1[name] = f
    
s1 = set()
d2 = {}
for j in range(M):
    x = input().split()
    guest = x[0] ; n = x[1:]
    for e in n:
        s1.add(d1[e])
    d2[guest] = s1
    s1 = set()

# 1679408, 2022-11-12 10:09:01, PP-- (50%)

N,M,K = input().split() ; N = int(N) ; M = int(M) ; K = int(K)
d1 = {}
for i in range(N):
    name,f = input().split() ; name = name.strip() ; f = f.strip()
    d1[name] = f
    
s1 = set()
d2 = {}
for j in range(M):
    x = input().split()
    guest = x[0] ; n = x[1:]
    for e in n:
        s1.add(d1[e])
    d2[guest] = s1
    s1 = set()
ans = []
for k in range(K):
    g = input().split()
    s = d2[g[0]]
    for w in g:
        s = s.intersection(d2[w])
    if s == set():
        ans.append(['None'])
    else:
        a = list(s)
        a.sort()
        ans.append(a)

for x in ans:
    x = ', '.join(x)
    print(x)
# 1679418, 2022-11-12 10:09:41, PPPP (100%)

N,M,K = input().split() ; N = int(N) ; M = int(M) ; K = int(K)
d1 = {}
for i in range(N):
    name,f = input().split() ; name = name.strip() ; f = f.strip()
    d1[name] = f
    
s1 = set()
d2 = {}
for j in range(M):
    x = input().split()
    guest = x[0] ; n = x[1:]
    for e in n:
        s1.add(d1[e])
    d2[guest] = s1
    s1 = set()
ans = []
for k in range(K):
    g = input().split()
    s = d2[g[0]]
    for w in g:
        s = s.intersection(d2[w])
    if s == set():
        ans.append(['None'])
    else:
        a = list(s)
        a.sort()
        ans.append(a)

for x in ans:
    x = ' '.join(x)
    print(x)

6230148621
# 1680072, 2022-11-12 10:40:27, xxxx (0%)

n,m,k = input().split()
n = int(n)
m = int(m)
k = int(k)
d = {}
d_p = {}
for i in range(n):
    a,d = input().split()
    d[a] = b
for i in range(m):
    inp = input().split()
    d_p[inp[0]] = []
    for j in range(1,len(inp)):
        if d[inp[j]] not in d_p[inp[0]]: d_p[inp[0]].append(d[inp[j]])
for i in range(k):
    l = []
    inp = input().split()
    for j in range(imp):
        l.append(set(d_p[inp[j]]))
    for i in range(len(l)):
        l[0] = l[0].intersection(l[i])
    if len(l[0]) == 0: print('None')
    else: print(' '.join(sorted(l[0])))
# 1680484, 2022-11-12 10:58:26, P-P- (50%)

n,m,k = input().split()
n = int(n)
m = int(m)
k = int(k)
d = {}
d_p = {}
for i in range(n):
    a,b = input().split()
    d[a] = b
for i in range(m):
    inp = input().split()
    d_p[inp[0]] = []
    for j in range(1,len(inp)):
        if d[inp[j]] not in d_p[inp[0]]: d_p[inp[0]].append(d[inp[j]])
for i in range(k):
    l = []
    inp = input().split()
    for j in range(len(inp)):
        l.append(set(d_p[inp[j]]))
    for i in range(len(inp)):
        l[0] = l[0].intersection(l[i])
    if len(l[0]) == '0': print('None')
    else: print(' '.join(sorted(l[0])))
# 1680614, 2022-11-12 11:03:24, PPPP (100%)

n,m,k = input().split()
n = int(n)
m = int(m)
k = int(k)
d = {}
d_p = {}
for i in range(n):
    a,b = input().split()
    d[a] = b
for i in range(m):
    inp = input().split()
    d_p[inp[0]] = []
    for j in range(1,len(inp)):
        if d[inp[j]] not in d_p[inp[0]]: d_p[inp[0]].append(d[inp[j]])
for i in range(k):
    l = []
    inp = input().split()
    for j in range(len(inp)):
        l.append(set(d_p[inp[j]]))
    for i in range(len(inp)):
        l[0] = l[0].intersection(l[i])
    if len(l[0]) == 0 : print('None')
    else: print(' '.join(sorted(l[0])))



6231720721
# 1680433, 2022-11-12 10:55:45, PP-- (50%)

x = [int(e) for e in input().split()]
n,m,k = x[0],x[1],x[2]

nif = {} #nist:fac
for nf in range(n):
    x1 = [e.strip() for e in input().split()]
    nis,fac = x1[0],x1[1]
    if nis not in nif: nif[nis] = ''
    nif[nis] = fac
# print(nif)

gd = {} #guess:many or one nis in list
for g in range(m):
    x2 = [e.strip() for e in input().split()]
    guess,nis = x2[0],x2[1:]
    if guess not in gd: gd[guess]=[]
    gd[guess].extend(nis)
# print(gd)

sonjai = [] #l of l
for g in range(k):
    sonjai.append([e.strip() for e in input().split()])
#     print(sonjai)
    final = []
    for lis in sonjai:
        s = set()
        f = set()
        ll = []
        for guess in lis:
            nisit = gd[guess] #give lis of nisit
            for nis in nisit:
                fac = nif[nis]
                f.add(fac)
            ll.append(f)
            s = ll[0]
            f=set()
            for i in range(1,len(ll)):
                s = s & ll[i]
        
        final.append(s)
#         print(ll)
# print(final)

for prin in final:
    if prin == set():
        print('None')
    else:
        fin = list(prin)
        for prin in fin:
            print(prin)
                
    
    
    
#     s = sorted(list(s))
#     if len(s) == 0:
#         print('None')
#     else:
#         print(' '.join(s))

            
    

# 1680462, 2022-11-12 10:57:22, PP-- (50%)

x = [int(e) for e in input().split()]
n,m,k = x[0],x[1],x[2]

nif = {} #nist:fac
for nf in range(n):
    x1 = [e.strip() for e in input().split()]
    nis,fac = x1[0],x1[1]
    if nis not in nif: nif[nis] = ''
    nif[nis] = fac
# print(nif)

gd = {} #guess:many or one nis in list
for g in range(m):
    x2 = [e.strip() for e in input().split()]
    guess,nis = x2[0],x2[1:]
    if guess not in gd: gd[guess]=[]
    gd[guess].extend(nis)
# print(gd)

sonjai = [] #l of l
for g in range(k):
    sonjai.append([e.strip() for e in input().split()])
#     print(sonjai)
    final = []
    for lis in sonjai:
        s = set()
        f = set()
        ll = []
        for guess in lis:
            nisit = gd[guess] #give lis of nisit
            for nis in nisit:
                fac = nif[nis]
                f.add(fac)
            ll.append(f)
            s = ll[0]
            f=set()
            for i in range(1,len(ll)):
                s = s & ll[i]
        
        final.append(s)
#         print(ll)
# print(final)

for prin in final:
    if prin == set():
        print('None')
    else:
        fin = list(prin)
        print(' '.join(prin))
                
    
    
    
#     s = sorted(list(s))
#     if len(s) == 0:
#         print('None')
#     else:
#         print(' '.join(s))

            
    

# 1680478, 2022-11-12 10:58:09, PPPP (100%)

x = [int(e) for e in input().split()]
n,m,k = x[0],x[1],x[2]

nif = {} #nist:fac
for nf in range(n):
    x1 = [e.strip() for e in input().split()]
    nis,fac = x1[0],x1[1]
    if nis not in nif: nif[nis] = ''
    nif[nis] = fac
# print(nif)

gd = {} #guess:many or one nis in list
for g in range(m):
    x2 = [e.strip() for e in input().split()]
    guess,nis = x2[0],x2[1:]
    if guess not in gd: gd[guess]=[]
    gd[guess].extend(nis)
# print(gd)

sonjai = [] #l of l
for g in range(k):
    sonjai.append([e.strip() for e in input().split()])
#     print(sonjai)
    final = []
    for lis in sonjai:
        s = set()
        f = set()
        ll = []
        for guess in lis:
            nisit = gd[guess] #give lis of nisit
            for nis in nisit:
                fac = nif[nis]
                f.add(fac)
            ll.append(f)
            s = ll[0]
            f=set()
            for i in range(1,len(ll)):
                s = s & ll[i]
        
        final.append(s)
#         print(ll)
# print(final)

for prin in final:
    if prin == set():
        print('None')
    else:
        fin = sorted(list(prin))
        print(' '.join(prin))
                
    
    
    
#     s = sorted(list(s))
#     if len(s) == 0:
#         print('None')
#     else:
#         print(' '.join(s))

            
    


6231122421
# 1679089, 2022-11-12 09:51:47, PP-- (50%)

n,m,k = [int(e) for e in input().split()]

bandit = {}
for i in range(n):
    name = input().split()
    bandit[name[0]] = name[1]

guest = {}
for i in range(m):
    g = input().split()
    guest[g[0]] = g[1:]

for i in range(k):
    checker_list = []
    target = input().split()
    for e in target:
        checker = set()
        for v in guest[e]:
            checker.add(bandit[v])
        checker_list.append(checker)
    temp = checker_list[0]
    for i in range(1,len(checker_list)):
        temp = temp.intersection(checker_list[i])
    if len(temp) != 0:
        out = ''
        for e in temp:
            out += ''+e
    else:
        out = 'None'
    print(out.strip())
# 1679103, 2022-11-12 09:52:49, PPP- (75%)

n,m,k = [int(e) for e in input().split()]

bandit = {}
for i in range(n):
    name = input().split()
    bandit[name[0]] = name[1]

guest = {}
for i in range(m):
    g = input().split()
    guest[g[0]] = g[1:]

for i in range(k):
    checker_list = []
    target = input().split()
    for e in target:
        checker = set()
        for v in guest[e]:
            checker.add(bandit[v])
        checker_list.append(checker)
    temp = checker_list[0]
    for i in range(1,len(checker_list)):
        temp = temp.intersection(checker_list[i])
    if len(temp) != 0:
        out = ''
        for e in temp:
            out += ' '+e
    else:
        out = 'None'
    print(out.strip())
# 1679241, 2022-11-12 10:00:27, PPPP (100%)

n,m,k = [int(e) for e in input().split()]

bandit = {}
for i in range(n):
    name = input().split()
    bandit[name[0]] = name[1]

guest = {}
for i in range(m):
    g = input().split()
    guest[g[0]] = g[1:]

for i in range(k):
    checker_list = []
    target = input().split()
    for e in target:
        checker = set()
        for v in guest[e]:
            checker.add(bandit[v])
        checker_list.append(checker)
    temp = checker_list[0]
    for i in range(1,len(checker_list)):
        temp = temp.intersection(checker_list[i])
    if len(temp) != 0:
        out = ''
        for e in sorted(temp):
            out += ' '+e
    else:
        out = 'None'
    print(out.strip())

6231422721
# 1679527, 2022-11-12 10:15:03, xPPP (75%)

num = [int(e) for e in input().split()]
major = dict()
for i in range (num[0]) :
    a = input().strip().split()
    if a[1] not in major :
        major[a[0]] = a[1]


visitor = dict()
for i in range (num[1]) :
    b = input().strip().split()
    if b[0] not in visitor :
        visitor[b[0]] = set(b[1:])
    else :
        visitor[b[0]]=visitor[b[0]].union(set(b[1:]))

for i in range (num[2]) :
    c = input().strip().split()
    count = 0
    result = set()
    report = set()
    for e in c:
        if count == 0 :
            for j in visitor[e] :
                report.add(major[j])
            count += 1
        else :
            check = set()
            for j in visitor[e] :
                check.add(major[j])
            report = report.intersection(check)
    if len(report) == 0 :
        print("None")
    else :
        print(" ".join(sorted(report)))
      

        

    
    
# 1679571, 2022-11-12 10:17:52, PPPP (100%)

num = [int(e) for e in input().split()]
major = dict()
for i in range (num[0]) :
    a = input().strip().split()

    major[a[0]] = a[1]


visitor = dict()
for i in range (num[1]) :
    b = input().strip().split()
    if b[0] not in visitor :
        visitor[b[0]] = set(b[1:])
    else :
        visitor[b[0]]=visitor[b[0]].union(set(b[1:]))

for i in range (num[2]) :
    c = input().strip().split()
    count = 0
    result = set()
    report = set()
    for e in c:
        if count == 0 :
            for j in visitor[e] :
                report.add(major[j])
            count += 1
        else :
            check = set()
            for j in visitor[e] :
                check.add(major[j])
            report = report.intersection(check)
    if len(report) == 0 :
        print("None")
    else :
        print(" ".join(sorted(report)))
# 1679575, 2022-11-12 10:18:00, PPPP (100%)

num = [int(e) for e in input().split()]
major = dict()
for i in range (num[0]) :
    a = input().strip().split()
    major[a[0]] = a[1]


visitor = dict()
for i in range (num[1]) :
    b = input().strip().split()
    if b[0] not in visitor :
        visitor[b[0]] = set(b[1:])
    else :
        visitor[b[0]]=visitor[b[0]].union(set(b[1:]))

for i in range (num[2]) :
    c = input().strip().split()
    count = 0
    result = set()
    report = set()
    for e in c:
        if count == 0 :
            for j in visitor[e] :
                report.add(major[j])
            count += 1
        else :
            check = set()
            for j in visitor[e] :
                check.add(major[j])
            report = report.intersection(check)
    if len(report) == 0 :
        print("None")
    else :
        print(" ".join(sorted(report)))

6430224821
# 1679708, 2022-11-12 10:23:50, PPPP (100%)

x = [int(e) for e in input().split()]

faculty = {}
for i in range(x[0]):
    y = input().split()
    y1 = y[0]
    y2 = y[1]
    if y2 in faculty:
        faculty[y2].add(y1)
    if y2 not in faculty:
        faculty[y2] = {y1}

faculty2 = {}
for w in range(x[1]):
    q = input().split()
    q1 = q[0]
    q2 = q[1:]
    for t in q2:
        for p in faculty:
            if t in faculty[p]:
                if q1 in faculty2:
                    faculty2[q1].add(p)
                if q1 not in faculty2:
                    faculty2[q1] = {p}

output = []
for h in range(x[2]):
    s = input().split()
    es = faculty2[s[0]]
    for l in s:
        if l == s[0]:
            pass
        else:
            bn = faculty2[l]
            sl = es.intersection(bn)
    if len(sl) == 0:
        output.append('None')
    else:
        ld = list(sl)
        ld.sort()
        output.append(' '.join(ld))
        
for d in output:
    print(d)
    
# 1679899, 2022-11-12 10:31:48, P-P- (50%)

x = [int(e) for e in input().split()]

faculty = {}
for i in range(x[0]):
    y = input().split()
    y1 = y[0]
    y2 = y[1]
    if y2 in faculty:
        faculty[y2].add(y1)
    if y2 not in faculty:
        faculty[y2] = {y1}

faculty2 = {}
for w in range(x[1]):
    q = input().split()
    q1 = q[0]
    q2 = q[1:]
    for t in q2:
        for p in faculty:
            if t in faculty[p]:
                if q1 in faculty2:
                    faculty2[q1].add(p)
                if q1 not in faculty2:
                    faculty2[q1] = {p}
ex = faculty.keys()
es = set()
for z in ex:
    es.add(z)
output = []
for h in range(x[2]):
    s = input().split()
    for l in s:
        bn = faculty2[l]
        es = es.intersection(bn)
    if len(es) == 0:
        output.append('None')
    else:
        ld = list(es)
        ld.sort()
        output.append(' '.join(ld))
        
for d in output:
    print(d)
    
# 1679927, 2022-11-12 10:33:07, PPPP (100%)

x = [int(e) for e in input().split()]

faculty = {}
for i in range(x[0]):
    y = input().split()
    y1 = y[0]
    y2 = y[1]
    if y2 in faculty:
        faculty[y2].add(y1)
    if y2 not in faculty:
        faculty[y2] = {y1}

faculty2 = {}
for w in range(x[1]):
    q = input().split()
    q1 = q[0]
    q2 = q[1:]
    for t in q2:
        for p in faculty:
            if t in faculty[p]:
                if q1 in faculty2:
                    faculty2[q1].add(p)
                if q1 not in faculty2:
                    faculty2[q1] = {p}

output = []
for h in range(x[2]):
    s = input().split()
    es = faculty2[s[0]]
    for l in s:
        if l == s[0]:
            pass
        else:
            bn = faculty2[l]
            sl = es.intersection(bn)
    if len(sl) == 0:
        output.append('None')
    else:
        ld = list(sl)
        ld.sort()
        output.append(' '.join(ld))
        
for d in output:
    print(d)

6530003521
# 1679053, 2022-11-12 09:49:45, PP-- (50%)

x = input().split()
N,M,K = int(x[0]),int(x[1]),int(x[2])
stu = {}
p = {}
for i in range(N) :
    x = input().split()
    stu.update({x[0]:x[1]})
    
for i in range(M) :
    x = input().split()
    p.update({x[0] : x[1:]})

all_ans = []
for i in range(K) :
    ans = set()
    x = input().split()
    c = 1
    for e in x :
        temp = set()
        for k in p[e] :
            temp.add(stu[k])
        if c : ans = temp ; c = 0
        ans = ans & temp
    all_ans.append(ans)
for e in all_ans :
    if e == set() :
        print('None')
    else :
        print(*e)
# 1679074, 2022-11-12 09:51:12, P-P- (50%)

x = input().split()
N,M,K = int(x[0]),int(x[1]),int(x[2])
stu = {}
p = {}
for i in range(N) :
    x = input().split()
    stu.update({x[0]:x[1]})
    
for i in range(M) :
    x = input().split()
    p.update({x[0] : x[1:]})

all_ans = []
for i in range(K) :
    ans = set()
    x = input().split()
    c = 1
    for e in x :
        temp = set()
        for k in p[e] :
            temp.add(stu[k])
        if c : ans = temp ; c = 0
        ans = ans & temp
    all_ans.append(ans)
for e in all_ans :
    e = sorted(list(e))
    if e == set() :
        print('None')
    else :
        print(*e)
# 1679088, 2022-11-12 09:51:44, PPPP (100%)

x = input().split()
N,M,K = int(x[0]),int(x[1]),int(x[2])
stu = {}
p = {}
for i in range(N) :
    x = input().split()
    stu.update({x[0]:x[1]})
    
for i in range(M) :
    x = input().split()
    p.update({x[0] : x[1:]})

all_ans = []
for i in range(K) :
    ans = set()
    x = input().split()
    c = 1
    for e in x :
        temp = set()
        for k in p[e] :
            temp.add(stu[k])
        if c : ans = temp ; c = 0
        ans = ans & temp
    all_ans.append(ans)
for e in all_ans :
    e = sorted(list(e))
    if e == [] :
        print('None')
    else :
        print(*e)
    
    


6530005821
# 1679483, 2022-11-12 10:12:49, PP-- (50%)

n,m,k=input().split()
d = {};d2={}
for i in range(int(n)):
    student,fac = input().split()
    d[student]=fac
for i in range(int(m)):
    x = input().split()
    visit = x[0]
    if visit not in d2:
        d2[visit]=set(x[1:])
    else:
        for e in x[1:]:
            d2[visit].add(e)
out=[]
for i in range(int(k)):
    y = input().split()
    Final =[]
    for e in y:
        Final.append(set([d[j] for j in d2[e]]))
    F = Final[0]
    for e in Final[1:]:
        F = F.intersection(e)
    if F!=set():
        out.append(F)
    else:
        out.append('None')
for e in out:
    if e!='None':
        print(*e)
    else:
        print(e)


# 1679523, 2022-11-12 10:14:45, xxxx (0%)

n,m,k=input().split()
d = {};d2={}
for i in range(int(n)):
    student,fac = input().split()
    d[student]=fac
for i in range(int(m)):
    x = input().split()
    visit = x[0]
    if visit not in d2:
        d2[visit]=set(x[1:])
    else:
        for e in x[1:]:
            d2[visit].add(e)
out=[]
for i in range(int(k)):
    y = input().split()
    Final =[]
    for e in y:
        Final.append(set([d[j] for j in d2[e]]))
    F = Final[0]
    for e in Final[1:]:
        F = F.intersection(e)
    if F!=set():
        out.append(F)
    else:
        out.append('None')
for e in out:
    if e!='None':
        e.sort()
        print(*e)
    else:
        print(e)
# 1679537, 2022-11-12 10:15:32, PPPP (100%)

n,m,k=input().split()
d = {};d2={}
for i in range(int(n)):
    student,fac = input().split()
    d[student]=fac
for i in range(int(m)):
    x = input().split()
    visit = x[0]
    if visit not in d2:
        d2[visit]=set(x[1:])
    else:
        for e in x[1:]:
            d2[visit].add(e)
out=[]
for i in range(int(k)):
    y = input().split()
    Final =[]
    for e in y:
        Final.append(set([d[j] for j in d2[e]]))
    F = Final[0]
    for e in Final[1:]:
        F = F.intersection(e)
    if F!=set():
        out.append(F)
    else:
        out.append('None')
for e in out:
    if e!='None':
        e = sorted(e)
        print(*e)
    else:
        print(e)

6530024721
# 1679420, 2022-11-12 10:10:03, compilation error (0%)

a = input().strip().split()
nbun = int(a[0])
nyad = int(a[1])
ns   = int(a[2])
d = {}
y = {}

def f1 (ni,yad,s) :
    l = []
    out = []
    ss = set()
    for e in s :
        set1 = set() 
        k = yad[e]
        for f in k :  
            for g in ni :
                if f in ni[g] :
                    set1.add(g)
        l.append(set1)
    l = sorted(l)
    out = f2(l)
    return out

def f2 (ss) :
    k = []
    for e in ss[0] :
        k.append(e)
    if len(ss) == 1 :
        out = []
        for e in ss[0] :
            out.append(e)
    else :
        for e in ss[0] :
            for i in range(1,len(ss)) :
                if e not in ss[i] :
                    if e in k :
                        k.remove(e)
        out = k
    return out    
                
        

for i in range(nbun) :
    nam,fac = input().strip().split()
    if not fac in d :
        d[fac] = [nam]
    else :
        d[fac].append(nam)

for i in range(nyad) :
    b = input().strip().split()
    y[b[0]] = []
    for i in range(1,len(b)) :
        y[b[0]].append(b[i])
        
for i in range(ns) :
    s = input().strip().split()
    out = f1(d,y,s)
    if len(out) != 0
        print((' ').join(out))
    else :
        print('None')
    
# 1679433, 2022-11-12 10:10:39, PP-- (50%)

a = input().strip().split()
nbun = int(a[0])
nyad = int(a[1])
ns   = int(a[2])
d = {}
y = {}

def f1 (ni,yad,s) :
    l = []
    out = []
    ss = set()
    for e in s :
        set1 = set() 
        k = yad[e]
        for f in k :  
            for g in ni :
                if f in ni[g] :
                    set1.add(g)
        l.append(set1)
    l = sorted(l)
    out = f2(l)
    return out

def f2 (ss) :
    k = []
    for e in ss[0] :
        k.append(e)
    if len(ss) == 1 :
        out = []
        for e in ss[0] :
            out.append(e)
    else :
        for e in ss[0] :
            for i in range(1,len(ss)) :
                if e not in ss[i] :
                    if e in k :
                        k.remove(e)
        out = k
    return out    
                
        

for i in range(nbun) :
    nam,fac = input().strip().split()
    if not fac in d :
        d[fac] = [nam]
    else :
        d[fac].append(nam)

for i in range(nyad) :
    b = input().strip().split()
    y[b[0]] = []
    for i in range(1,len(b)) :
        y[b[0]].append(b[i])
        
for i in range(ns) :
    s = input().strip().split()
    out = f1(d,y,s)
    if len(out) != 0 :
        print((' ').join(out))
    else :
        print('None')
    
# 1679467, 2022-11-12 10:12:11, PPPP (100%)

a = input().strip().split()
nbun = int(a[0])
nyad = int(a[1])
ns   = int(a[2])
d = {}
y = {}

def f1 (ni,yad,s) :
    l = []
    out = []
    ss = set()
    for e in s :
        set1 = set() 
        k = yad[e]
        for f in k :  
            for g in ni :
                if f in ni[g] :
                    set1.add(g)
        l.append(set1)
    l = sorted(l)
    out = f2(l)
    return out

def f2 (ss) :
    k = []
    for e in ss[0] :
        k.append(e)
    if len(ss) == 1 :
        out = []
        for e in ss[0] :
            out.append(e)
    else :
        for e in ss[0] :
            for i in range(1,len(ss)) :
                if e not in ss[i] :
                    if e in k :
                        k.remove(e)
        out = k
    return out    
                
        

for i in range(nbun) :
    nam,fac = input().strip().split()
    if not fac in d :
        d[fac] = [nam]
    else :
        d[fac].append(nam)

for i in range(nyad) :
    b = input().strip().split()
    y[b[0]] = []
    for i in range(1,len(b)) :
        y[b[0]].append(b[i])
        
for i in range(ns) :
    s = input().strip().split()
    out = f1(d,y,s)
    out.sort()
    if len(out) != 0 :
        print((' ').join(out))
    else :
        print('None')

6530026021
# 1680264, 2022-11-12 10:49:52, ---- (0%)

n,m,k = input().split()
n = int(n)
m = int(m)
k = int(k)
#-----------------------------------------
d = {}
for i in range(n) :
    n,f = input().split()
    d[n] = f
#----------------------------------------------
g = {}
for i in range(m) :
    x = input().split()
    g[x[0]] = []
    for j in range(1, len(x)) :
        g[x[0]].append(x[j])
#-----------------------------------------
t = []
for i in range(k) :
    q = []
    o = []
    x = input().split()
    for j in x :
        q.append(g[j])
    for h in q :
        p = []
        for e in h :
            p.append(d[e])
        o.append(p)
    ans = ['faculty_a', 'faculty_b', 'faculty_c']
    a = []
    b = []
    c = []
    for l in o :
        if 'faculty_a' in l :
            a.append('aok')
        else :
            a.append('o')
    for l in o :
        if 'faculty_b' in l :
            b.append('aok')
        else :
            b.append('o')
    for l in o :
        if 'faculty_c' in l :
            c.append('aok')
        else :
            c.append('o')
    for j in a :
        if j == 'o' :
            ans.remove('faculty_a')
            break
    for j in b :
        if j == 'o' :
            ans.remove('faculty_b')
            break
    for j in c :
        if j == 'o' :
            ans.remove('faculty_c')
            break
    t.append(ans)
for i in t :
    if i == [] :
        print('None')
    else :
        print(' '.join(i))
# 1680271, 2022-11-12 10:50:08, ---- (0%)

n,m,k = input().split()
n = int(n)
m = int(m)
k = int(k)
d = {}
for i in range(n) :
    n,f = input().split()
    d[n] = f
g = {}
for i in range(m) :
    x = input().split()
    g[x[0]] = []
    for j in range(1, len(x)) :
        g[x[0]].append(x[j])
t = []
for i in range(k) :
    q = []
    o = []
    x = input().split()
    for j in x :
        q.append(g[j])
    for h in q :
        p = []
        for e in h :
            p.append(d[e])
        o.append(p)
    ans = ['faculty_a', 'faculty_b', 'faculty_c']
    a = []
    b = []
    c = []
    for l in o :
        if 'faculty_a' in l :
            a.append('aok')
        else :
            a.append('o')
    for l in o :
        if 'faculty_b' in l :
            b.append('aok')
        else :
            b.append('o')
    for l in o :
        if 'faculty_c' in l :
            c.append('aok')
        else :
            c.append('o')
    for j in a :
        if j == 'o' :
            ans.remove('faculty_a')
            break
    for j in b :
        if j == 'o' :
            ans.remove('faculty_b')
            break
    for j in c :
        if j == 'o' :
            ans.remove('faculty_c')
            break
    t.append(ans)
for i in t :
    if i == [] :
        print('None')
    else :
        print(' '.join(i))
# 1680596, 2022-11-12 11:02:51, PPPP (100%)

n,m,k = input().split()
n = int(n)
m = int(m)
k = int(k)
#-----------------------------------------
d = {}
for i in range(n) :
    n,f = input().split()
    d[n] = f
#----------------------------------------------
g = {}
for i in range(m) :
    x = input().split()
    g[x[0]] = []
    for j in range(1, len(x)) :
        g[x[0]].append(x[j])
#-----------------------------------------
t = []
for i in range(k) :
    q = []
    o = []
    x = input().split()
    for j in x :
        q.append(g[j])
    for h in q :
        p = []
        for e in h :
            p.append(d[e])
        o.append(p)
    s = set()
    for u in d :
        s.add(d[u])
    ans = []
    for qq in s :
        l = []
        for ww in o :
            if qq in ww :
                l.append('ok')
            else :
                l.append('o')
        if 'o' not in l :
            ans.append(qq)
    t.append(ans)
for i in t :
    if i == [] :
        print('None')
    else :
        i.sort()
        print(' '.join(i))
            
        


6530084321
# 1678980, 2022-11-12 09:46:17, PP-- (50%)

N,M,K = [int(e) for e in input().split()]
n2f = {}
faculties = {}
for i in range(N) :
    name,faculty = input().split()
    n2f[name.lower()] = faculty.lower()
    faculties[faculty.lower()] = faculty
g2n = {}
for i in range(M) :
    x = input().split()
    guest = x[0]
    name = x[1:]
    for i in range(len(name)) :
        name[i] = n2f[name[i].lower()]
    g2n[guest.lower()] = set(name)
out = []
for i in range(K) :
    x = input().lower().split()
    go_to = g2n[x[0]]
    for j in range(len(x)) :
        go_to = go_to&g2n[x[j]]
    if go_to == set() :
        out.append(['None'])
    else :
        out.append(list(go_to))
for i in range(len(out)) :
    if out[i] != ['None'] :
        for j in range(len(out[i])) :
            out[i][j] = faculties[out[i][j]]
    out[i] = ' '.join(out[i])
print('\n'.join(out))
# 1679577, 2022-11-12 10:18:20, PP-- (50%)

N,M,K = [int(e) for e in input().strip().split()]
n2f = {}
faculties = {}
for i in range(N) :
    name,faculty = input().strip().split()
    n2f[name.lower()] = faculty.lower()
    faculties[faculty.lower()] = faculty
g2n = {}
for i in range(M) :
    x = input().strip().split()
    guest = x[0]
    name = x[1:]
    for i in range(len(name)) :
        name[i] = n2f[name[i].lower()]
    g2n[guest.lower()] = set(name)
out = []
for i in range(K) :
    x = input().strip().lower().split()
    go_to = g2n[x[0]]
    for j in range(len(x)) :
        go_to = go_to&g2n[x[j]]
    if go_to == set() :
        out.append(['None'])
    else :
        out.append(list(go_to))
for i in range(len(out)) :
    if out[i] != ['None'] :
        for j in range(len(out[i])) :
            out[i][j] = faculties[out[i][j]]
    out[i] = ' '.join(out[i])
print('\n'.join(out))

# 1679744, 2022-11-12 10:25:24, PPPP (100%)

N,M,K = [int(e) for e in input().strip().split()]
n2f = {}
faculties = {}
for i in range(N) :
    name,faculty = input().strip().split()
    n2f[name.lower()] = faculty.lower()
    faculties[faculty.lower()] = faculty
g2n = {}
for i in range(M) :
    x = input().strip().split()
    guest = x[0]
    name = x[1:]
    for i in range(len(name)) :
        name[i] = n2f[name[i].lower()]
    g2n[guest.lower()] = set(name)
out = []
for i in range(K) :
    x = input().strip().lower().split()
    go_to = g2n[x[0]]
    for j in range(len(x)) :
        go_to = go_to&g2n[x[j]]
    if go_to == set() :
        out.append(['None'])
    else :
        out.append(list(go_to))
for i in range(len(out)) :
    if out[i] != ['None'] :
        for j in range(len(out[i])) :
            out[i][j] = faculties[out[i][j]]
        out[i].sort()
        out[i] = ' '.join(out[i])
    else :
        out[i] = 'None'
print('\n'.join(out))

6530088921
# 1679656, 2022-11-12 10:22:14, xxxx (0%)

n1,n2,n3 = input().split()
uni = {} ; parent = {}
for i in range(int(n1)):
    p , fac = file[i].split();p=p.strip();fac=fac.strip()
    if fac not in uni : uni[fac] = [p]
    else: uni[fac] += [p]
for i in range(int(n2)):
    x = input().split()
    par = x[0];ban = x[1::]
    parent[par]=ban
    o = i
for i in range(int(n3)):
    group = input().split() ; result = {} ; ans = set()
    for k in group:
        result[k] = set()
        for u in parent[k]:
            for w in uni:
                if u in uni[w]:result[k].add(w)
    a=set()
    for k in group:
        if len(a) == 0 : a = result[k]
        else : a = a.intersection(result[k])
    if len(a) != 0 :
        print(' '.join(a))
    else :
        print(None)
# 1679671, 2022-11-12 10:22:54, PP-- (50%)

n1,n2,n3 = input().split()
uni = {} ; parent = {}
for i in range(int(n1)):
    p , fac = input().split();p=p.strip();fac=fac.strip()
    if fac not in uni : uni[fac] = [p]
    else: uni[fac] += [p]
for i in range(int(n2)):
    x = input().split()
    par = x[0];ban = x[1::]
    parent[par]=ban
    o = i
for i in range(int(n3)):
    group = input().split() ; result = {} ; ans = set()
    for k in group:
        result[k] = set()
        for u in parent[k]:
            for w in uni:
                if u in uni[w]:result[k].add(w)
    a=set()
    for k in group:
        if len(a) == 0 : a = result[k]
        else : a = a.intersection(result[k])
    if len(a) != 0 :
        print(' '.join(a))
    else :
        print(None)
# 1679793, 2022-11-12 10:28:12, PPPP (100%)

n1,n2,n3 = input().split()
uni = {} ; parent = {}
for i in range(int(n1)):
    p , fac = input().split();p=p.strip();fac=fac.strip()
    if fac not in uni : uni[fac] = [p]
    else: uni[fac] += [p]
    u = i
for i in range(int(n2)):
    x = input().split()
    par = x[0];ban = x[1::]
    parent[par]=ban
    o = i
for i in range(int(n3)):
    group = input().split() ; result = {} ; ans = set()
    for k in group:
        result[k] = set()
        for u in parent[k]:
            for w in uni:
                if u in uni[w]:result[k].add(w)
    a=set()
    for k in group:
        if len(a) == 0 : a = result[k]
        else : a = a.intersection(result[k])
    if len(a) != 0 :
        print(' '.join(sorted(a)))
    else :
        print(None)

6530099821
# 1679004, 2022-11-12 09:47:24, PP-- (50%)

N,M,K = [int(e) for e in input().split()]
d1 = {}
d2 = {}
d3 = {}

for i in range(N):
    a,b = input().split()
    d1[a] = b
    
for i in range(M):
    a = input().split()
    if a[0] not in d2: d2[a[0]] = []
    d2[a[0]].extend(a[1:])
    
for i in d2:
    for j in d2[i]:
        if j in d1:
            if i not in d3: d3[i] = set()
            d3[i].add(d1[j])

for i in range(K):
    a = input().split()
    s = set()
    for j in a:
        if len(s) == 0:
            s = d3[j]
        else:
            s &= d3[j]
        
    if len(s) != 0:
        l = [x for x in s]
        l.sort()
        print(', '.join(l))
    else:
        print(None)
# 1679094, 2022-11-12 09:51:58, PP-- (50%)

N,M,K = [int(e) for e in input().split()]
d1 = {}
d2 = {}
d3 = {}

for i in range(N):
    a,b = input().split()
    d1[a] = b
    
for i in range(M):
    a = input().split()
    if a[0] not in d2: d2[a[0]] = []
    d2[a[0]].extend(a[1:])
    
for i in d2:
    for j in d2[i]:
        if j in d1:
            if i not in d3: d3[i] = set()
            d3[i].add(d1[j])

for i in range(K):
    a = input().split()
    s = d3[a[0]]
    for j in a[1:]:
        s &= d3[j]
        
    if len(s) != 0:
        l = [x for x in s]
        l.sort()
        print(', '.join(l))
    else:
        print(None)
# 1679183, 2022-11-12 09:56:51, PPPP (100%)

N,M,K = [int(e) for e in input().split()]
d1 = {}
d2 = {}
d3 = {}

for i in range(N):
    a,b = input().split()
    d1[a] = b
    
for i in range(M):
    a = input().split()
    if a[0] not in d2: d2[a[0]] = []
    d2[a[0]].extend(a[1:])
    
for i in d2:
    for j in d2[i]:
        if j in d1:
            if i not in d3: d3[i] = set()
            d3[i].add(d1[j])

for i in range(K):
    a = input().split()
    s = d3[a[0]]
    for j in a[1:]:
        s &= d3[j]
        
    if len(s) != 0:
        l = [x for x in s]
        l.sort()
        print(' '.join(l))
    else:
        print(None)

6530105921
# 1679031, 2022-11-12 09:48:29, xxxx (0%)

n,m,k = input().strip().split()
stui = {}
for i in range(int(n)):
    stu,fac = input().split()
    stui[stu] = fac
visi = {}
for i in range(int(m)):
    a = input().strip().split()
    vis = a[0]
    stuv = [a[i] for i in range(1,len(a))]
    visi[vis] = stuv
visn = {}
for e in visi:
    visn[e] = set()
    for k in visi[e]:
        visn[e].add(stui[k])
for i in range(int(k)):
    find = input().strip().split()
    ch = []
    out = set()
    for e in find:
        for k in visn[e]: 
            if k not in ch:
                ch.append(k)
            else:
                out.add(k)
    if out == set():
        print("None")
    else:
        print(" ".join(sorted(out)))
# 1679108, 2022-11-12 09:53:03, P-P- (50%)

n,m,l = input().strip().split()
stui = {}
for i in range(int(n)):
    stu,fac = input().split()
    stui[stu] = fac
visi = {}
for i in range(int(m)):
    a = input().strip().split()
    vis = a[0]
    stuv = [a[i] for i in range(1,len(a))]
    visi[vis] = stuv
visn = {}
for e in visi:
    visn[e] = set()
    for k in visi[e]:
        visn[e].add(stui[k])
for i in range(int(l)):
    find = input().strip().split()
    ch = []
    out = set()
    for e in find:
        for k in visn[e]: 
            if k not in ch:
                ch.append(k)
            else:
                out.add(k)
    if out == set():
        print("None")
    else:
        print(" ".join(sorted(out)))

# 1679464, 2022-11-12 10:12:03, PPPP (100%)

n,m,l = input().strip().split()
stui = {}
for i in range(int(n)):
    stu,fac = input().split()
    stui[stu] = fac
visi = {}
for i in range(int(m)):
    a = input().strip().split()
    vis = a[0]
    stuv = [a[i] for i in range(1,len(a))]
    visi[vis] = stuv
visn = {}
for e in visi:
    visn[e] = set()
    for k in visi[e]:
        visn[e].add(stui[k])
for i in range(int(l)):
    find = input().strip().split()
    ch = visn[find[0]]
    out = set()
    for i in range(1,len(find)):
        for k in visn[find[i]]: 
            if k in ch:
                out.add(k)
        ch = sorted(out)
        out = set()
    out = set(ch)
    if out == set():
        print("None")
    else:
        print(" ".join(sorted(out)))

6530175821
# 1678858, 2022-11-12 09:38:22, compilation error (0%)

nisit = dict()
guest = dict()
n,m,k = [int(i) for i in input().strip().split()]
for i in range(n) :
    x = input().strip().split()
    nisit[x[0]] = x[1]
for i in range(m) :
    x = input().strip().split()
    guest[x[0]] = set()
    for i in x[1:] :
        guest[x[0]].add(nisit[i])
for i in range(k) :
    x = input().strip().split()
    inter = guest[x[0]]
    for i in x[1:] :
        inter = inter.intersection(guest[i])
    inter = list(inter).sort()
    if inter = list() :
        print(None)
    else :
        print(" ".join(inter))

# 1678863, 2022-11-12 09:38:40, xxxx (0%)

nisit = dict()
guest = dict()
n,m,k = [int(i) for i in input().strip().split()]
for i in range(n) :
    x = input().strip().split()
    nisit[x[0]] = x[1]
for i in range(m) :
    x = input().strip().split()
    guest[x[0]] = set()
    for i in x[1:] :
        guest[x[0]].add(nisit[i])
for i in range(k) :
    x = input().strip().split()
    inter = guest[x[0]]
    for i in x[1:] :
        inter = inter.intersection(guest[i])
    inter = list(inter).sort()
    if inter == list() :
        print(None)
    else :
        print(" ".join(inter))
# 1678892, 2022-11-12 09:40:42, PPPP (100%)

nisit = dict()
guest = dict()
n,m,k = [int(i) for i in input().strip().split()]
for i in range(n) :
    x = input().strip().split()
    nisit[x[0]] = x[1]
for i in range(m) :
    x = input().strip().split()
    guest[x[0]] = set()
    for i in x[1:] :
        guest[x[0]].add(nisit[i])
for i in range(k) :
    x = input().strip().split()
    inter = guest[x[0]]
    for i in x[1:] :
        inter = inter.intersection(guest[i])
    inter = list(inter)
    inter.sort()
    if inter == list() :
        print(None)
    else :
        print(" ".join(inter))

6530177021
# 1679396, 2022-11-12 10:08:27, ---- (0%)

n1,n2,n3 = [int(e) for e in input().strip().split()]
uni = {}
fac = set()


for q1 in range(n1):
    s , u = input().strip().split()
    if u not in uni :
        uni[u] = [s]
    elif u in uni :
        uni[u] += [s]
    fac.add(u)
print(uni)
print(fac)
vst = {}
for q2 in range(n2):
    x = input().strip().split()
    vst[x[0]] = set()
    for i in x[1:]:
        for w in uni :
            if i in uni[w]:
                vst[x[0]].add(w)
                break
print(vst)

for q3 in range(n3):
    nm = input().strip().split()
    ans = []
    for f in fac:
        r = True
        for m in nm:
            if f not in vst[m]:
                r = False
        if r:
            ans+=[f]
    if len(ans) == 0:
        print('None')
    else:
        print(' '.join(ans))
        
# 1679404, 2022-11-12 10:08:54, PP-- (50%)

n1,n2,n3 = [int(e) for e in input().strip().split()]
uni = {}
fac = set()


for q1 in range(n1):
    s , u = input().strip().split()
    if u not in uni :
        uni[u] = [s]
    elif u in uni :
        uni[u] += [s]
    fac.add(u)
    
vst = {}
for q2 in range(n2):
    x = input().strip().split()
    vst[x[0]] = set()
    for i in x[1:]:
        for w in uni :
            if i in uni[w]:
                vst[x[0]].add(w)
                break

for q3 in range(n3):
    nm = input().strip().split()
    ans = []
    for f in fac:
        r = True
        for m in nm:
            if f not in vst[m]:
                r = False
        if r:
            ans+=[f]
    if len(ans) == 0:
        print('None')
    else:
        print(' '.join(ans))
# 1679427, 2022-11-12 10:10:16, PPPP (100%)

n1,n2,n3 = [int(e) for e in input().strip().split()]
uni = {}
fac = set()


for q1 in range(n1):
    s , u = input().strip().split()
    if u not in uni :
        uni[u] = [s]
    elif u in uni :
        uni[u] += [s]
    fac.add(u)
    
vst = {}
for q2 in range(n2):
    x = input().strip().split()
    vst[x[0]] = set()
    for i in x[1:]:
        for w in uni :
            if i in uni[w]:
                vst[x[0]].add(w)
                break

for q3 in range(n3):
    nm = input().strip().split()
    ans = []
    for f in fac:
        r = True
        for m in nm:
            if f not in vst[m]:
                r = False
        if r:
            ans+=[f]
    ans.sort()
    if len(ans) == 0:
        print('None')
    else:
        print(' '.join(ans))

6530182121
# 1678923, 2022-11-12 09:42:30, ---- (0%)

#password : good_LUCK
N,M,K = [int(e) for e in input().split()]
#print(N,K,T)
#-----------------------------------------------
fac = {} #fac = {คณะ : คน}
per = {}
for i in range (N) :
    name , facu = input().split()
    if facu not in fac :
        fac[facu] = set()
    fac[facu].add(name)
    per[name] = facu
#-----------------------------------------------
p = {} #{แขก : คนที่มาหา}
for i in range (M) :
    x = input().split()
    if x[0] not in p : p[x[0]] = dict()
    p[x[0]] = x[1:]
#-----------------------------------------------
q = []
for i in range (K) :
    x = input().split()
    q.append(x)
#-----------------------------------------------
for g in q :
    out = set()
    for member in g :
        b = set()
        for bundit in p[member] :
            a = per[bundit]
            person = a
        b.add(person)
        
        
        
            
        


    
            
                        
            
            
    
    
                

# 1680017, 2022-11-12 10:37:59, PP-- (50%)

#password : good_LUCK
N,M,K = [int(e) for e in input().split()]
#print(N,K,T)
#-----------------------------------------------
fac = {} #fac = {คณะ : คน}
per = {}
for i in range (N) :
    name , facu = input().split()
    if facu not in fac :
        fac[facu] = set()
    fac[facu].add(name)
    per[name] = facu
#-----------------------------------------------
p = {} #{แขก : คนที่มาหา}
for i in range (M) :
    x = input().split()
    if x[0] not in p : p[x[0]] = dict()
    p[x[0]] = set(x[1:])
#-----------------------------------------------
q = []
for i in range (K) :
    x = input().split()
    q.append(x)
#-----------------------------------------------
#print(fac) ; print(per) ; print(p) ; print(q)
#-----------------------------------------------
#q = [['Eren', 'Anya'], ['Anya', 'Eren', 'Yaiba']]
#x = ['Eren', 'Anya']
#member = Eren
#แต่ละตัวใน group หาผลลัพท์ แล้ว sec กัน
data = []
for x in q :
    xn = []
    for member in x :
        namelist = p[member]
        s = set()
        for op in namelist :
            s.add(per[op])
            xn.append(s)
    out = xn[0]
    for a in xn :
        out = out & set(a)
    out = list(out)
    if len(out) == 0 : print("None")
    else : print(" ".join(out))
        
        
            
            
        
        
        
        
        
        
        
            
            
        
            
        
    

# 1680036, 2022-11-12 10:38:39, PPPP (100%)

#password : good_LUCK
N,M,K = [int(e) for e in input().split()]
#print(N,K,T)
#-----------------------------------------------
fac = {} #fac = {คณะ : คน}
per = {}
for i in range (N) :
    name , facu = input().split()
    if facu not in fac :
        fac[facu] = set()
    fac[facu].add(name)
    per[name] = facu
#-----------------------------------------------
p = {} #{แขก : คนที่มาหา}
for i in range (M) :
    x = input().split()
    if x[0] not in p : p[x[0]] = dict()
    p[x[0]] = set(x[1:])
#-----------------------------------------------
q = []
for i in range (K) :
    x = input().split()
    q.append(x)
#-----------------------------------------------
#print(fac) ; print(per) ; print(p) ; print(q)
#-----------------------------------------------
#q = [['Eren', 'Anya'], ['Anya', 'Eren', 'Yaiba']]
#x = ['Eren', 'Anya']
#member = Eren
#แต่ละตัวใน group หาผลลัพท์ แล้ว sec กัน
data = []
for x in q :
    xn = []
    for member in x :
        namelist = p[member]
        s = set()
        for op in namelist :
            s.add(per[op])
            xn.append(s)
    out = xn[0]
    for a in xn :
        out = out & set(a)
    out = list(out)
    if len(out) == 0 : print("None")
    else : print(" ".join(sorted(out)))
        
        
            
            
        
        
        
        
        
        
        
            
            
        
            
        
    


6530186721
# 1679344, 2022-11-12 10:05:30, PPP- (75%)

N,M,K = [int(e) for e in input().split()]
data = {}
order = []
names = {}
for i in range(N) :
    name,faculty = input().split()
    if faculty not in order :
        order.append(faculty)
    if faculty not in data :
        data[faculty] = {name}
    else :
        data[faculty].add(name)
    names[name] = faculty
    
for i in range(M) :
    x = input().split()
    banditfaculty = []
    for i in x :
        for key,value in data.items():
            if i in value :
                banditfaculty.append(key)
    for i in banditfaculty :
        data[i] = data[i].union(set(x)) 
for i in range(K) :
    sameplace = []
    x = input().split()
    for i in x :
        places = set()
        for key,value in data.items() :
            if i in value :
                places.add(key)
        sameplace.append(places)
    sameplace = set.intersection(*sameplace)
    if sameplace != set() :
        print(' '.join(sorted(sameplace)))
    else :
        print('None')

# 1679888, 2022-11-12 10:31:24, PPP- (75%)

N,M,K = [int(e) for e in input().split()]
data = {}
order = []
names = {}
for i in range(N) :
    name,faculty = input().split()
    if faculty not in order :
        order.append(faculty)
    if faculty not in data :
        data[faculty] = {name}
    else :
        data[faculty].add(name)
    names[name] = faculty
    
for i in range(M) :
    x = input().split()
    banditfaculty = []
    for i in x :
        for key,value in data.items():
            if i in value :
                banditfaculty.append(key)
    for i in banditfaculty :
        data[i] = data[i].union(set(x)) 
for i in range(K) :
    sameplace = []
    x = input().split()
    for i in x :
        places = set()
        for key,value in data.items() :
            if i in value :
                places.add(key)
        sameplace.append(places)
    sameplace = set.intersection(*sameplace)
    if sameplace != set() :
        print(' '.join(sorted(sameplace)))
    else :
        print('None')
# 1680127, 2022-11-12 10:42:43, PPPP (100%)

N,M,K = [int(e) for e in input().split()]
data = {}
bandit = {}
for i in range(N) :
    name,faculty = input().split()
    if faculty not in data :
        data[faculty] = {name}
    else :
        data[faculty].add(name)
    bandit[name] = faculty
for i in range(M) :
    name = input().split()
    for i in name :
        if i in bandit :
            data[bandit[i]] = data[bandit[i]].union(set(name))
names = {}
for key,value in data.items() :
    for name in value :
        if name not in names :
            names[name] = {key}
        else :
            names[name].add(key)
            
for i in range(K) :
    x = input().split()
    forop = []
    for name in x :
        forop.append(names[name])
    solution = set.intersection(*forop)
    if solution != set() :
        print(' '.join(sorted(solution)))
    else :
        print('None')


6530189621
# 1679414, 2022-11-12 10:09:28, P--- (25%)

a,b,c=input().split()
a=int(a)
b=int(b)
c=int(c)
x={}
y={}
for i in range(a):
    name,facu=input().split()
    x[name]=facu
    if facu not in y:
        y[facu]=set()
    y[facu].add(name)
z={}
for i in range(b):
    e=input().split()
    if e[0] not in z:
        z[e[0]]=[]
    z[e[0]]+=e[1:]
w=[]
for i in range(c):
    e=input().split()
    
    w+=[e[0:]]
aa={}
for i in z:
    for j in range(len(z[i])):
        if i not in aa:
            aa[i]=set()
        aa[i].add(x[z[i][j]])
ans=[]
for i in range(c):
    bb=aa[w[i][0]]
    for j in range(len(w[i])):
        bb&=aa[w[i][j]]
        
    ans+=[bb]
aaa=[i for i in ans]
sorted(aaa)

for i in aaa:
    if i == set():
        print('None')
    else:
        print((' ').join(list(i)))


# 1679520, 2022-11-12 10:14:24, P-P- (50%)

a,b,c=input().split()
a=int(a)
b=int(b)
c=int(c)
x={}
y={}
for i in range(a):
    name,facu=input().split()
    x[name]=facu
    if facu not in y:
        y[facu]=set()
    y[facu].add(name)
z={}
for i in range(b):
    e=input().split()
    if e[0] not in z:
        z[e[0]]=[]
    z[e[0]]+=e[1:]
w=[]
for i in range(c):
    e=input().split()
    
    w+=[e[0:]]
aa={}
for i in z:
    for j in range(len(z[i])):
        if i not in aa:
            aa[i]=set()
        aa[i].add(x[z[i][j]])
ans=[]
for i in range(c):
    bb=aa[w[i][0]]
    for j in range(len(w[i])):
        bb&=aa[w[i][j]]
        
    ans+=[bb]
aaa=[sorted(i) for i in ans]

for i in aaa:
    if i == []:
        print('None')
    else:
        print((' ').join(list(i)))


# 1680154, 2022-11-12 10:43:53, PPPP (100%)

a,b,c=input().split()
a=int(a)
b=int(b)
c=int(c)
x={}
y={}
for i in range(a):
    name,facu=input().split()
    x[name]=facu
    if facu not in y:
        y[facu]=set()
    y[facu].add(name)
z={}
for i in range(b):
    e=input().split()
    if e[0] not in z:
        z[e[0]]=[]
    z[e[0]]+=e[1:]
w=[]
for i in range(c):
    e=input().split()
    
    w+=[e[0:]]
aa={}
for i in z:
    for j in range(len(z[i])):
        if i not in aa:
            aa[i]=set()
        aa[i].add(x[z[i][j]])
    

ans=[]
for i in range(c):
    bb=aa[w[i][0]]
    for j in range(len(w[i])):
        bb=bb&aa[w[i][j]]
    ans+=[bb]
    
aaa=[sorted(i) for i in ans]

for i in aaa:
    if i == []:
        print('None')
    else:
        print((' ').join(list(i)))


6531318421
# 1679282, 2022-11-12 10:02:05, PP-- (50%)

n, m, k = [int(x) for x in input().split()]
faculty = {}
member = {}
visitors = {}
for i in range(n):
    e, f = input().split()
    member[e] = f
    if f not in faculty:
        faculty[f] = []
    faculty[f].append(e)
# print(faculty)
# print(member)
for i in range(m):
    v_f = []
    s = input().split()
    for e in s[1:]:
        v_f.append(member[e])

    visitors[s[0]] = set(v_f)
# print(visitors)
# {'Eren': ['faculty_a', 'faculty_a', 'faculty_c'], 'Anya': ['faculty_b', 'faculty_a'], 'Yaiba': ['faculty_b']}
for i in range(k):
    res = {}
    ans = []
    vs = input().split()
    for v in vs:
        for f in visitors[v]:
            if f not in res:
                res[f] = 0
            res[f] += 1
    for r in res:
        if res[r] == len(vs):
            ans.append(r)
    if len(ans) != 0:
        print(''.join(ans))
    else:
        print('None')
    # print(res, len(vs))
    # print(ans)
# print(res, len(vs))
# print(ans)

# 1679323, 2022-11-12 10:04:06, PP-- (50%)

n, m, k = [int(x) for x in input().split()]
faculty = {}
member = {}
visitors = {}
for i in range(n):
    e, f = input().split()
    member[e] = f
    if f not in faculty:
        faculty[f] = []
    faculty[f].append(e)
# print(faculty)
# print(member)
for i in range(m):
    v_f = []
    s = input().split()
    for e in s[1:]:
        v_f.append(member[e])

    visitors[s[0]] = set(v_f)
# print(visitors)
# {'Eren': ['faculty_a', 'faculty_a', 'faculty_c'], 'Anya': ['faculty_b', 'faculty_a'], 'Yaiba': ['faculty_b']}
for i in range(k):
    res = {}
    ans = []
    vs = input().split()
    for v in vs:
        for f in visitors[v]:
            if f not in res:
                res[f] = 0
            res[f] += 1
    for r in res:
        if res[r] == len(vs):
            ans.append(r)
    if len(ans) != 0:
        print(' '.join(ans))
    else:
        print('None')
    # print(res, len(vs))
    # print(ans)
# print(res, len(vs))
# print(ans)

# 1679329, 2022-11-12 10:04:40, PPPP (100%)

n, m, k = [int(x) for x in input().split()]
faculty = {}
member = {}
visitors = {}
for i in range(n):
    e, f = input().split()
    member[e] = f
    if f not in faculty:
        faculty[f] = []
    faculty[f].append(e)
# print(faculty)
# print(member)
for i in range(m):
    v_f = []
    s = input().split()
    for e in s[1:]:
        v_f.append(member[e])

    visitors[s[0]] = set(v_f)
# print(visitors)
# {'Eren': ['faculty_a', 'faculty_a', 'faculty_c'], 'Anya': ['faculty_b', 'faculty_a'], 'Yaiba': ['faculty_b']}
for i in range(k):
    res = {}
    ans = []
    vs = input().split()
    for v in vs:
        for f in visitors[v]:
            if f not in res:
                res[f] = 0
            res[f] += 1
    for r in res:
        if res[r] == len(vs):
            ans.append(r)
    if len(ans) != 0:
        print(' '.join(sorted(ans)))
    else:
        print('None')
    # print(res, len(vs))
    # print(ans)
# print(res, len(vs))
# print(ans)


6531327021
# 1679499, 2022-11-12 10:13:30, PP-- (50%)

n = input().split()
d = {}
for i in range(int(n[0])) :
    character,falculty = input().split()
    if falculty not in d :
        d[falculty] = [character]
    else :
        d[falculty].append(character)

g = {}
for i in range(int(n[1])) :
    gp = input().split()
    for f in d :
        for p in gp[1::] :
            if p in d[f] :
                if gp[0] not in g :
                    g[gp[0]] = {f}
                else :
                    g[gp[0]].add(f)

t = []
for i in range(int(n[2])) :
    gf = input().split()
    sg = g[gf[0]]
    for guest in gf :
        sg &= g[guest]
    if len(sg) != 0 :
        t.append(''.join(list(sg)))
    else :
        t.append('None')

for k in t :
    print(k)
# 1679549, 2022-11-12 10:16:13, PP-- (50%)

n = input().split()
d = {}
for i in range(int(n[0])) :
    character,falculty = input().split()
    if falculty not in d :
        d[falculty] = [character]
    else :
        d[falculty].append(character)

g = {}
for i in range(int(n[1])) :
    gp = input().split()
    for f in d :
        for p in gp[1::] :
            if p in d[f] :
                if gp[0] not in g :
                    g[gp[0]] = {f}
                else :
                    g[gp[0]].add(f)

t = []
for i in range(int(n[2])) :
    gf = input().split()
    sg = g[gf[0]]
    for guest in gf :
        sg &= g[guest]
    if len(sg) != 0 :
        t.append(''.join(sorted(list(sg))))
    else :
        t.append('None')

for k in t :
    print(k)
# 1679628, 2022-11-12 10:21:08, PPPP (100%)

n = input().split()
d = {}
for i in range(int(n[0])) :
    character,falculty = input().split()
    if falculty not in d :
        d[falculty] = [character]
    else :
        d[falculty].append(character)

g = {}
for i in range(int(n[1])) :
    gp = input().split()
    for f in d :
        for p in gp[1::] :
            if p in d[f] :
                if gp[0] not in g :
                    g[gp[0]] = {f}
                else :
                    g[gp[0]].add(f)

t = []
for i in range(int(n[2])) :
    gf = input().split()
    sg = g[gf[0]]
    for guest in gf :
        sg &= g[guest]
    if len(sg) != 0 :
        t.append(' '.join(sorted(list(sg))))
    else :
        t.append('None')

for k in t :
    print(k)

6531330921
# 1678787, 2022-11-12 09:34:54, xxxx (0%)

N,M,K = input().split()

stu = {}
guest = {}
log = []

for n in range(N):
    name,fac = input().split()
    stu[name] = fac

for m in range(M):
    x = input().split()
    guest[x[0]] = [e for e in x[1:]]

for k in range(K):
    inte = input().split()
    for i in range(len(inte)):
        inte[i] = guest[inte[i]]
    for e in inte:
        for j in range(len(e)):
            e[j] = stu[e[j]]
    for k in range(len(inte)):
        inte[k] = set(inte[k])

    a = inte[0]
    for i in range(1,len(inte)):
        a = a & inte[i]
    printo = list(a)
    printo.sort()
    log.append(printo)

for e in log:
    print(" ".join(e))
# 1678801, 2022-11-12 09:35:27, P-x- (25%)

N,M,K = [int(e) for e in input().split()]

stu = {}
guest = {}
log = []

for n in range(N):
    name,fac = input().split()
    stu[name] = fac

for m in range(M):
    x = input().split()
    guest[x[0]] = [e for e in x[1:]]

for k in range(K):
    inte = input().split()
    for i in range(len(inte)):
        inte[i] = guest[inte[i]]
    for e in inte:
        for j in range(len(e)):
            e[j] = stu[e[j]]
    for k in range(len(inte)):
        inte[k] = set(inte[k])

    a = inte[0]
    for i in range(1,len(inte)):
        a = a & inte[i]
    printo = list(a)
    printo.sort()
    log.append(printo)

for e in log:
    print(" ".join(e))
# 1679015, 2022-11-12 09:47:47, PPPP (100%)

N,M,K = [int(e) for e in input().split()]

stu = {}
guest = {}
log = []

for n in range(N):
    name,fac = input().split()
    stu[name] = fac

for m in range(M):
    x = input().split()
    guest[x[0]] = [stu[e] for e in x[1:]]

for k in range(K):
    inte = input().split()
    for i in range(len(inte)):
        inte[i] = guest[inte[i]]
    for k in range(len(inte)):
        inte[k] = set(inte[k])

    a = inte[0]
    for i in range(1,len(inte)):
        a = a & inte[i]
    printo = list(a)
    printo.sort()
    log.append(printo)

for e in log:
    if len(e) == 0:
        print("None")
    else:
        print(" ".join(e))

6531333821
# 1678746, 2022-11-12 09:32:17, PPPP (100%)

times = [int(t) for t in input().split()]

studentDict = {}
for i in range(times[0]):
    name, faculty = input().split()
    studentDict[name] = faculty

visitorDict = {}
for i in range(times[1]):
    data = input().split()
    visitorDict[data[0]] = set()
    visitorDict[data[0]].update(data[1:])

for i in range(times[2]):
    visitors = input().split()
    studentSet = set()
    for student in visitorDict[visitors[0]]:
        studentSet.add(studentDict[student])
    for v in visitors[1:]:
        tempSet = set()
        for student in visitorDict[v]:
            tempSet.add(studentDict[student])
        studentSet.intersection_update(tempSet)
    if(studentSet == set()):
        print("None")
    else:
        print(" ".join(sorted(studentSet)))
# 1679833, 2022-11-12 10:29:39, PPPP (100%)

times = [int(t) for t in input().split()]

studentDict = {}
for i in range(times[0]):
    name, faculty = input().split()
    studentDict[name] = faculty

visitorDict = {}
for i in range(times[1]):
    data = input().split()
    visitorDict[data[0]] = set()
    for student in data[1:]:
        visitorDict[data[0]].add(studentDict[student])

for i in range(times[2]):
    visitors = input().split()
    facultySet = visitorDict[visitors[0]]
    for v in visitors[1:]:
        facultySet.intersection_update(visitorDict[v])
    if(facultySet == set()):
        print("None")
    else:
        print(" ".join(sorted(facultySet)))
# 1680928, 2022-11-12 11:14:30, PPPP (100%)

times = [int(t) for t in input().split()]

studentDict = {}
for i in range(times[0]):
    name, faculty = input().split()
    studentDict[name] = faculty

visitorDict = {}
for i in range(times[1]):
    data = input().split()
    visitorDict[data[0]] = set()
    for student in data[1:]:
        visitorDict[data[0]].add(studentDict[student])

for i in range(times[2]):
    visitors = input().split()
    facultySet = visitorDict[visitors[0]].copy()
    for v in visitors[1:]:
        facultySet.intersection_update(visitorDict[v])
    if(facultySet == set()):
        print("None")
    else:
        print(" ".join(sorted(facultySet)))

6532106921
# 1679006, 2022-11-12 09:47:28, ---- (0%)

n,m,k=input().split()
n=int(n); m=int(m); k=int(k)
regis=dict()
attend=dict()
for i in range(n):
    name,fac=input().split()
    print(name,fac)
    if(name not in regis): regis[name]=fac

for i in range(m):
    x=[x for x in input().split()]
    if(x[0] not in attend): attend[x[0]]=dict()
    for j in range(1,len(x)):
        if(j not in attend[x[0]]):
            attend[x[0]][x[j]]=regis[x[j]]

for i in range(k):
    aset=set()
    person=input().split()
    ## first person
    for x in attend[ person[0] ].items():
        aset.add(x[1])
    for j in range(1,len(person)):
        bset=set()
        for x in attend[ person[j] ].items():
            bset.add(x[1])
        aset = aset.intersection(bset)
    if(len(aset)!=0): print(*aset)
    else: print('None')

# 1679030, 2022-11-12 09:48:27, ---- (0%)

n,m,k=input().split()
n=int(n); m=int(m); k=int(k)
regis=dict()
attend=dict()
for i in range(n):
    name,fac=input().split()
    print(name,fac)
    if(name not in regis): regis[name]=fac

for i in range(m):
    x=[x for x in input().split()]
    if(x[0] not in attend): attend[x[0]]=dict()
    for j in range(1,len(x)):
        if(j not in attend[x[0]]):
            attend[x[0]][x[j]]=regis[x[j]]

for i in range(k):
    aset=set()
    person=input().split()
    ## first person
    for x in attend[ person[0] ].items():
        aset.add(x[1])
    for j in range(1,len(person)):
        bset=set()
        for x in attend[ person[j] ].items():
            bset.add(x[1])
        aset = aset.intersection(bset)
    aset=sorted(aset)
    if(len(aset)!=0): print(*aset)
    else: print('None')

# 1679046, 2022-11-12 09:49:14, PPPP (100%)

n,m,k=input().split()
n=int(n); m=int(m); k=int(k)
regis=dict()
attend=dict()
for i in range(n):
    name,fac=input().split()
    if(name not in regis): regis[name]=fac

for i in range(m):
    x=[x for x in input().split()]
    if(x[0] not in attend): attend[x[0]]=dict()
    for j in range(1,len(x)):
        if(j not in attend[x[0]]):
            attend[x[0]][x[j]]=regis[x[j]]

for i in range(k):
    aset=set()
    person=input().split()
    ## first person
    for x in attend[ person[0] ].items():
        aset.add(x[1])
    for j in range(1,len(person)):
        bset=set()
        for x in attend[ person[j] ].items():
            bset.add(x[1])
        aset = aset.intersection(bset)
    aset=sorted(aset)
    if(len(aset)!=0): print(*aset)
    else: print('None')


6532143021
# 1678807, 2022-11-12 09:36:02, ---- (0%)

n, m, k = [int(i) for i in input().split()]

s = {}
g = {}
faculty = []
for i in range(n):
    x = input().split()
    s[x[0]] = x[1]
    if x[1] not in faculty:
        faculty.append(x[1])
    
# print(s)
for i in range(m):
    x = input().split()
    se = set()
    for j in range(1,len(x)):
        print(x[j])
        se.add(s[x[j]])
    g[x[0]] = se

# print(g)
for i in range(k):
    x = input().split()
    l = []
    chk = 0
    for j in faculty:    
        a = 0    
        for k in x:
            # print(k)
            if j not in g[k]:
                a = 1
                continue
        if a == 0:
            l.append(j)
        
    if len(l) != 0:
        print(' '.join(l))
    else:
        print('None')
    
# 1678814, 2022-11-12 09:36:17, PPPP (100%)

n, m, k = [int(i) for i in input().split()]

s = {}
g = {}
faculty = []
for i in range(n):
    x = input().split()
    s[x[0]] = x[1]
    if x[1] not in faculty:
        faculty.append(x[1])
    
# print(s)
for i in range(m):
    x = input().split()
    se = set()
    for j in range(1,len(x)):
        # print(x[j])
        se.add(s[x[j]])
    g[x[0]] = se

# print(g)
for i in range(k):
    x = input().split()
    l = []
    chk = 0
    for j in faculty:    
        a = 0    
        for k in x:
            # print(k)
            if j not in g[k]:
                a = 1
                continue
        if a == 0:
            l.append(j)
        
    if len(l) != 0:
        print(' '.join(l))
    else:
        print('None')
# 1680507, 2022-11-12 10:59:08, PPPP (100%)

n, m, k = [int(i) for i in input().split()]

s = {}
g = {}
faculty = []
for i in range(n):
    x = input().split()
    s[x[0]] = x[1]
    if x[1] not in faculty:
        faculty.append(x[1])
    
for i in range(m):
    x = input().split()
    se = set()
    for j in range(1,len(x)):
        se.add(s[x[j]])
    g[x[0]] = se

for i in range(k):
    x = input().split()
    l = []
    chk = 0
    for j in faculty:    
        a = 0    
        for k in x:
            if j not in g[k]:
                a = 1
                continue
        if a == 0:
            l.append(j)
        
    if len(l) != 0:
        print(' '.join(l))
    else:
        print('None')

6532182521
# 1678679, 2022-11-12 09:29:07, PPPP (100%)

n, m, k = [int(inp) for inp in input().split()]

nisitFac = {}
for i in range(n):
    inp = input().split()
    nisitFac[inp[0]] = inp[1]

kagFind = {}
for i in range(m):
    inp = input().split()
    kagFind[inp[0]] = inp[1:]

for i in range(k):
    inp = input().split()

    facDict = {}
    for kag in inp:
        facSet = set()
        for nisit in kagFind[kag]:
            facSet.add(nisitFac[nisit])

        for fac in facSet:
            if fac not in facDict:
                facDict[fac] = 0
            facDict[fac] += 1

    sameList = []
    for fac in facDict:
        if facDict[fac] == len(inp):
            sameList.append(fac)

    if sameList == []:
        print('None')
    else:
        print(' '.join(sorted(sameList)))

# 1679511, 2022-11-12 10:14:01, PPPP (100%)

n, m, k = [int(inp) for inp in input().split()]

facSet = set()
nisitFac = {}
for i in range(n):
    inp = input().split()
    nisitFac[inp[0]] = inp[1]
    facSet.add(inp[1])

kagFind = {}
for i in range(m):
    inp = input().split()
    kagFind[inp[0]] = inp[1:]

for i in range(k):
    inp = input().split()

    samFac = facSet
    for kag in inp:
        facKag = set()
        for nisit in kagFind[kag]:
            facKag.add(nisitFac[nisit])
        samFac = samFac.intersection(facKag)

    if samFac == set():
        print('None')
    else:
        print(' '.join(sorted(list(samFac))))

# 1679729, 2022-11-12 10:24:40, PPPP (100%)

n, m, k = [int(inp) for inp in input().split()]

facSet = set()
nisitFac = {}
for i in range(n):
    inp = input().split()
    nisitFac[inp[0]] = inp[1]
    facSet.add(inp[1])

kagFind = {}
for i in range(m):
    inp = input().split()
    kagFind[inp[0]] = set([nisitFac[nisit] for nisit in inp[1:]])

for i in range(k):
    samFac = facSet
    for kag in input().split():
        samFac = samFac.intersection(kagFind[kag])

    if samFac == set():
        print('None')
    else:
        print(' '.join(sorted(list(samFac))))


6532193421
# 1678719, 2022-11-12 09:30:58, PPPP (100%)

n, m, k=[int(e) for e in input().split()]
bandits={}
for i in range(n):
    name, faculty=input().split()
    bandits[name]=faculty
visitors={}
for i in range(m):
    s=input().split()
    visitor=s[0]
    ss=set()
    for e in s[1:]:
        ss.add(bandits[e])
    visitors[visitor]=ss
for i in range(k):
    a=input().split()
    s=visitors[a[0]]
    for e in a[1:]:
        s&=visitors[e]
    if len(s)==0:
        print("None")
    else:
        ans=sorted(s)
        print(" ".join(ans))
# 1680990, 2022-11-12 11:16:17, PPPP (100%)

n, m, k=[int(e) for e in input().split()]
bandits={}
for i in range(n):
    name, faculty=input().split()
    bandits[name]=faculty
visitors={}
for i in range(m):
    s=input().split()
    visitor=s[0]
    ss=set()
    for e in s[1:]:
        ss.add(bandits[e])
    visitors[visitor]=ss
for i in range(k):
    a=input().split()
    s=visitors[a[0]].copy()
    for e in a[1:]:
        s&=visitors[e]
    if len(s)==0:
        print("None")
    else:
        ans=sorted(s)
        print(" ".join(ans))
# 1681010, 2022-11-12 11:16:42, PPPP (100%)

n, m, k=[int(e) for e in input().split()]
bandits={}
for i in range(n):
    name, faculty=input().split()
    bandits[name]=faculty
visitors={}
for i in range(m):
    s=input().split()
    visitor=s[0]
    ss=set()
    for e in s[1:]:
        ss.add(bandits[e])
    visitors[visitor]=ss
for i in range(k):
    a=input().split()
    s=visitors[a[0]].copy()
    for e in a[1:]:
        s&=visitors[e].copy()
    if len(s)==0:
        print("None")
    else:
        ans=sorted(s)
        print(" ".join(ans))

6231010821
# 1680039, 2022-11-12 10:38:51, P-P- (50%)

N, M, K = input().split()
N, M, K = int(N), int(M), int(K)
faculty_dict = dict()
for i in range(N):
    name, faculty = input().split()
    faculty_dict[name] = faculty
guest_dict = dict()
for i in range(M):
    text = input().split()
    guest = text[0]
    grads = text[1:]
    guest_dict[guest] = grads
for i in range(K):
    guests = input().split()
    faculty_set = set()
    for grad in guest_dict[guests[0]]:
        faculty_set.add(faculty_dict[grad])
    for g in guests[1:]:
        new_faculty_set = set()
        for grad in guest_dict[g]:
            new_faculty_set.add(faculty_dict[grad])
        faculty_set = faculty_set.intersection(new_faculty_set)
    else:
        print(" ".join(sorted(faculty_set)))
# 1680432, 2022-11-12 10:55:39, PPPP (100%)

N, M, K = input().split()
N, M, K = int(N), int(M), int(K)
faculty_dict = dict()
for i in range(N):
    name, faculty = input().split()
    faculty_dict[name] = faculty
guest_dict = dict()
for i in range(M):
    text = input().split()
    guest = text[0]
    grads = text[1:]
    guest_dict[guest] = grads
for i in range(K):
    guests = input().split()
    faculty_set = set()
    for grad in guest_dict[guests[0]]:
        faculty_set.add(faculty_dict[grad])
    for g in guests[1:]:
        new_faculty_set = set()
        for grad in guest_dict[g]:
            new_faculty_set.add(faculty_dict[grad])
        faculty_set = faculty_set.intersection(new_faculty_set)
    if len(faculty_set) == 0:
        print("None") #ไม่มีซ้ำprint'None'
    else:
        print(" ".join(sorted(faculty_set))) #ถ้ามีซ้ำprintว่าซ้ำคณะไหนบ้าง
        


6230322421
# 1680044, 2022-11-12 10:39:01, PP-- (50%)

a1,a2,a3 = [int(e) for e in input().split()]

d_1 = {}
for i in range(0,a1):
    nisit,fac = input().split()
    d_1[nisit] = fac
    
d_2 = {}
for i in range(0,a2):
    all = input().split()
    d_2[all[0]] = set()
    for j in range(1,len(all)):
        d_2[all[0]].add(d_1[all[j]])
        
for i in range(0,a3):
    s = set()
    compare = input().split()
    s = d_2[compare[0]]
    for j in range(1,len(compare)):
        t = s &  d_2[compare[j]]
        s = t
    if len(s) == 0:
        print('None')
    else:
        s_l = list(s)
        s_l.sort(reverse = True)
        s_l = ' '.join(s)
        print(s_l)
# 1680128, 2022-11-12 10:42:48, PPPP (100%)

a1,a2,a3 = [int(e) for e in input().split()]

d_1 = {}
for i in range(0,a1):
    nisit,fac = input().split()
    d_1[nisit] = fac
    
d_2 = {}
for i in range(0,a2):
    all = input().split()
    d_2[all[0]] = set()
    for j in range(1,len(all)):
        d_2[all[0]].add(d_1[all[j]])
        
for i in range(0,a3):
    s = set()
    compare = input().split()
    s = d_2[compare[0]]
    for j in range(1,len(compare)):
        t = s &  d_2[compare[j]]
        s = t
    if len(s) == 0:
        print('None')
    else:
        s_l = list(s)
        s_l.sort()
        sk = ' '.join(s_l)
        print(sk)
        

6431105021
# 1680544, 2022-11-12 11:00:48, xxxx (0%)

dffd
# 1681211, 2022-11-12 11:21:30, PPPP (100%)


x,y,w = [int(i) for i in input().strip().split()]
students = dict()
people = dict()
funny = dict()
for i in range(x):
    a,b = input().strip().split()
    students[a] = b

for i in range(y):
    a = input().strip().split()
    people[a[0]] = a[1:]
    for z in a[1:]:
        if z in students:
            if students[z] not in funny:
                funny[students[z]] = set()
            funny[students[z]].add(a[0])

for e in range(w):
    farn = []
    tle = set(input().split())
    for ks,vs in funny.items():
        g = vs.union(tle)
        if g == vs:farn.append(ks)
    if len(farn) != 0 :
        print(' '.join(sorted(farn)))
    else:
        print('None')


6430201321
# 1679392, 2022-11-12 10:08:11, PP-- (50%)

a = input().split()
n = int(a[0])
m = int(a[1])
k = int(a[2])

b = {}
c = {}

for i in range(n):
    a = input().split()
    b[a[0]] = a[1]

for i in range(m):
    a = input().split()
    cc = set()
    for j in range(1,len(a)):
        cc.add(b[a[j]])
    c[a[0]] = cc    

for i in range(k):
    a = input().split()
    s = c[a[0]]
    for i in range(1,len(a)):
        s = s & c[a[i]]
        
    if s == set():
        print('None')
    else:
        s = list(s)
        print(' '.join(s))

# 1679416, 2022-11-12 10:09:30, PPPP (100%)

a = input().split()
n = int(a[0])
m = int(a[1])
k = int(a[2])

b = {}
c = {}

for i in range(n):
    a = input().split()
    b[a[0]] = a[1]

for i in range(m):
    a = input().split()
    cc = set()
    for j in range(1,len(a)):
        cc.add(b[a[j]])
    c[a[0]] = cc    

for i in range(k):
    a = input().split()
    s = c[a[0]]
    for i in range(1,len(a)):
        s = s & c[a[i]]
        
    if s == set():
        print('None')
    else:
        s = list(s)
        s.sort()
        print(' '.join(s))

6432032021
# 1679456, 2022-11-12 10:11:39, PP-- (50%)

n,m,k = input().split()
stu = {}
p = {}
for i in range(int(n)):
    s,c = input().split()
    stu[s] = c
for i in range(int(m)):
    n = input().split()
    p[n[0]] = n[1:]
for i in range(int(k)):
    n = input().split()
    check = []
    for i in n:
        get = set()
        for j in p[i]:
            get.add(stu[j])
        check.append(get)
    g = check[0]
    for i in range(len(check)-1):
        g = set(g) & set(check[i+1])
    result = ''
    if len(g) != 0:
        for h in sorted(g):
            result += h
        print(h)
    else:
        print('None')
            
        
        
        
            
            
    
    

# 1679489, 2022-11-12 10:13:11, PPPP (100%)

n,m,k = input().split()
stu = {}
p = {}
for i in range(int(n)):
    s,c = input().split()
    stu[s] = c
for i in range(int(m)):
    n = input().split()
    p[n[0]] = n[1:]
for i in range(int(k)):
    n = input().split()
    check = []
    for i in n:
        get = set()
        for j in p[i]:
            get.add(stu[j])
        check.append(get)
    g = check[0]
    for i in range(len(check)-1):
        g = set(g) & set(check[i+1])
    result = ''
    if len(g) != 0:
        for h in sorted(g):
            result += h+' '
        print(result[:-1])
    else:
        print('None')
            
        
        
        
            
            
    
    


6530010921
# 1680530, 2022-11-12 11:00:11, PP-- (50%)

N,M,K = input().split()
facultys = {}
data = {}
parents = {}
for i in range(int(N)):
    name,faculty = input().split()
    if faculty not in facultys:
        facultys[faculty] = set()
        facultys[faculty].add(name)
    else:
        facultys[faculty].add(name)
    data[name] = faculty
for i in range(int(M)):
    a = input().split()
    parent = a[0]
    names = a[1::]
    parents[parent] = set()
    for name in names:
        parents[parent].add(name)
        
for i in range(int(K)):
    partys = input().split()
    data2 = []
    for par in partys:
        data3 = set()
        for j in parents[par]:
            data3.add(data[j])
        data2.append(data3)
    data4 = data2[0]
    for da in data2:
        data4 = data4 & da
    if data4 == set():
        print('None')
    for d in data4:
        print(d)
# 1680629, 2022-11-12 11:03:53, PPPP (100%)

N,M,K = input().split()
facultys = {}
data = {}
parents = {}
for i in range(int(N)):
    name,faculty = input().split()
    if faculty not in facultys:
        facultys[faculty] = set()
        facultys[faculty].add(name)
    else:
        facultys[faculty].add(name)
    data[name] = faculty
for i in range(int(M)):
    a = input().split()
    parent = a[0]
    names = a[1::]
    parents[parent] = set()
    for name in names:
        parents[parent].add(name)
        
for i in range(int(K)):
    partys = input().split()
    data2 = []
    for par in partys:
        data3 = set()
        for j in parents[par]:
            data3.add(data[j])
        data2.append(data3)
    data4 = data2[0]
    for da in data2:
        data4 = data4 & da
    if data4 == set():
        print('None')
    out = []
    for d in data4:
        out.append(d)
    out = sorted(out)
    print(' '.join(out))

6530012121
# 1678995, 2022-11-12 09:46:55, P-PP (75%)

n,m,k = [int(e) for e in input().strip().split()]
nisit= {};guest= {}
for i in range(n):
    name,fac = input().strip().split()
    nisit[name]=fac
for i in range(m):
    wn = input().strip().split()
    guest[wn[0]]=wn[1:]
for i in range(k):
    ans=[];answer =set()
    wn = input().strip().split()
    for per in wn:
        for son in guest[per]:
            ans.append(nisit[son])
    if len(set(ans))==len(ans):
        print("None")
    else:
        for h in ans:
            if ans.count(h) >= len(wn):
                answer.add(h)
        answer=sorted(answer)
        answer =' '.join(answer)
        print(answer)

# 1679398, 2022-11-12 10:08:34, PPPP (100%)

n,m,k = [int(e) for e in input().strip().split()]
nisit= {};guest= {}
for i in range(n):
    name,fac = input().strip().split()
    nisit[name]=fac
for i in range(m):
    wn = input().strip().split()
    guest[wn[0]]=wn[1:]
for i in range(k):
    ans=[];answer =set();check =[]
    wn = input().strip().split()
    for per in wn:
        ty =[]
        for son in guest[per]:
            ans.append(nisit[son])
            ty.append(nisit[son])
        check.append(set(ty))
    for y in range(len(check)-1):
        cin=check[y].intersection(check[y+1])
    if len(cin)==0:
        print("None")
    else:
        for h in ans:
            if ans.count(h) >= len(wn):
                answer.add(h)
        answer=sorted(answer)
        answer =' '.join(answer)
        print(answer)



6530015021
# 1678879, 2022-11-12 09:39:35, PPP- (75%)

n,m,k = [int(e) for e in input().strip().split()]
faculties = {}
visitFac = {}

def findFac(facs,who):
    for faculty,bundits in facs.items():
        if who in bundits:
            return faculty

for i in range(n):
    bundit,fac = input().strip().split()
    if fac not in faculties:
        faculties[fac] = []
    faculties[fac].append(bundit)
for i in range(m):
    x = input().strip().split()
    visitor = x[0]
    bunditList = x[1:]
    if visitor not in visitFac:
        visitFac[visitor] = set()
    for b in bunditList:
        visitFac[visitor].add(findFac(faculties,b))
out = []    
for i in range(k):
    v = input().strip().split()
    sub = set()
    for i in range(len(v)):
        sub = visitFac[v[i-1]].intersection(visitFac[v[i]])
    if len(sub) == 0:
        out.append('None')
    else:
        out.append(sorted(sub))

for i in range(k):
    if out[i] == 'None':
        print(out[i])
    else:
        print(' '.join(out[i]))

# 1679173, 2022-11-12 09:56:15, PPPP (100%)

n,m,k = [int(e) for e in input().strip().split()]
faculties = {}
visitFac = {}

def findFac(facs,who):
    for faculty,bundits in facs.items():
        if who in bundits:
            return faculty

for i in range(n):
    bundit,fac = input().strip().split()
    if fac not in faculties:
        faculties[fac] = []
    faculties[fac].append(bundit)
for i in range(m):
    x = input().strip().split()
    visitor = x[0]
    bunditList = x[1:]
    if visitor not in visitFac:
        visitFac[visitor] = set()
    for b in bunditList:
        visitFac[visitor].add(findFac(faculties,b))

'''print('faculties =',faculties)
print()
print('visitFac =',visitFac)
print()'''
out = []    
for i in range(k):
    v = input().strip().split()
    sub = set(visitFac[v[0]])
    for i in range(1,len(v)):
        sub &= visitFac[v[i]]
    if len(sub) == 0:
        out.append('None')
    else:
        out.append(sorted(sub))

for i in range(k):
    if out[i] == 'None':
        print(out[i])
    else:
        print(' '.join(out[i]))


6530019621
# 1679011, 2022-11-12 09:47:41, PPP- (75%)

x = input().strip().split()
N = int(x[0])
M = int(x[1])
K = int(x[2])
# รับนิสิตกับคณะ
AllDepart = dict()
for i in range(N):
    x = input().strip().split()
    Name = x[0].strip()
    Depart = x[1].strip()
    if Depart not in AllDepart:
        AllDepart[Depart] = [Name]
    else:
        AllDepart[Depart].append(Name)

# print(AllDepart)

def Find_Depart(Name):
    for Depart in AllDepart:
        if Name in AllDepart[Depart]:
            return Depart
    
Guest = dict()
for i in range(M):
    x = input().strip().split()
    Name = x[0].strip()
    for i in range(1,len(x)):
        Student = x[i].strip()
        if Name not in Guest:
            Guest[Name] = [Student]
        else:
            Guest[Name].append(Student)
        
# print(Guest)

Guest_Depart = dict()
for Name in Guest:
    Visited = Guest[Name]
    for Student in Visited:
        Depart = Find_Depart(Student)
        if Name not in Guest_Depart:
            Guest_Depart[Name] = {Depart}
        else:
            Guest_Depart[Name].add(Depart)

# print(Guest_Depart)

CheckAll = []
for i in range(K):
    x = input().strip().split()
    CheckAll.append(x)

# print(CheckAll)

def List(Set):
    Phak = []
    for E in Set:
        Phak.append(E)
    Phak.sort()
    return Phak

Answer = []

for Check in CheckAll:
    Ans = set()
    for i in range(len(Check)-1):
        Ans = Guest_Depart[Check[i]].intersection(Guest_Depart[Check[i+1]])
    List_Ans = List(Ans)
    Answer.append(List_Ans)

# print(Answer)

for Ans in Answer:
    if len(Ans) == 0:
        print('None')
    else:
        Ans = ' '.join(Ans)
        print(Ans)
    
        

# 1679403, 2022-11-12 10:08:53, PPPP (100%)

x = input().strip().split()
N = int(x[0])
M = int(x[1])
K = int(x[2])
# รับนิสิตกับคณะ
AllDepart = dict()
for i in range(N):
    x = input().strip().split()
    Name = x[0].strip()
    Depart = x[1].strip()
    if Depart not in AllDepart:
        AllDepart[Depart] = [Name]
    else:
        AllDepart[Depart].append(Name)

# print(AllDepart)

def Find_Depart(Name):
    for Depart in AllDepart:
        if Name in AllDepart[Depart]:
            return Depart
    
Guest = dict()
AllGuest = []
for i in range(M):
    x = input().strip().split()
    Name = x[0].strip()
    if Name not in AllGuest:
        AllGuest.append(Name)
    for i in range(1,len(x)):
        Student = x[i].strip()
        if Name not in Guest:
            Guest[Name] = [Student]
        else:
            Guest[Name].append(Student)
        
# print(Guest)
# print(AllGuest)

Guest_Depart = dict()
for Name in Guest:
    Visited = Guest[Name]
    for Student in Visited:
        Depart = Find_Depart(Student)
        if Name not in Guest_Depart:
            Guest_Depart[Name] = {Depart}
        else:
            Guest_Depart[Name].add(Depart)

# print(Guest_Depart)

CheckAll = []
for i in range(K):
    x = input().strip().split()
    CheckAll.append(x)

# print(CheckAll)

def List(Set):
    Phak = []
    for E in Set:
        Phak.append(E)
    Phak.sort()
    return Phak

Answer = []

def sort_Check(List):
    New = []
    for Name in AllGuest:
        if Name in Check:
            New.append(Name)
    return New

for Check in CheckAll:
    Check_sort = sort_Check(Check)
    Ans = set()
    for Name in Check_sort:
        Set = Guest_Depart[Name]
        Ans = Ans.union(Set)
#     for Set in Guest_Dapart:
#         for Student in Set:
#             Ans.add(Student)
    for i in range(len(Check)):
        Ans = Ans.intersection(Guest_Depart[Check_sort[i]])
    List_Ans = List(Ans)
    Answer.append(List_Ans)

# print(Answer)

for Ans in Answer:
    if len(Ans) == 0:
        print('None')
    else:
        Ans = ' '.join(Ans)
        print(Ans)
    
        


6530021821
# 1680470, 2022-11-12 10:57:39, ---- (0%)

#{guess : [st1 , st2]}
#{'Eren': ['Nami', 'Chopper', 'Brook']
# {fac : [st1 , st3]} {'faculty_b': ['Sanji', 'Franky']}
# {guess : [fac]} 
st = []
f = []
st_fac = []
fac2st = {}

g2st = {}
g = []
g_st = []

g2fac = {}

s = []
ans = []

i_in  = [int(e) for e in input().split()]
for i in range(i_in[0]):
    stu , fac = input().split()
    st.append(stu)
    f.append(fac)
    st_fac.append([fac , stu])

f = list(set(f))
for i in f:
    fac2st[i] = []
    
for i in st:
    for j in st_fac:
        if i in j:
            fac2st[j[0]] += [i]



for i in range(i_in[1]):
    i2 = [e for e in input().split()]
    g.append(i2[0])
    g_st.append(i2[1:])

for i in range(len(g)):
    g2st[g[i]] = g_st[i] 
    
for i in g:
    g2fac[i] = []

for k , v in g2st.items():
    facul = []
    for i in v:
        for j in st_fac:
            if i in j:
                facul.append(j[0])
    fc = set(facul)
    g2fac[k] = fc 
    
for i in range(i_in[2]):
    sol = [e for e in input().split()]
    s.append(sol)
    
for i in s:
    asd = []
    for j in i:
        asd.append(g2fac[j])
    print(asd)
    res = asd[0]
    for i in asd:
        res = res.intersection(i)
    
    r = list(res)
    if len(r) == 0 :
        ans.append('None')
    else:
        r.sort()
        ans.append(r)
        
for i in ans:
    if i == 'None':
        print('None')
    else:
        if len(i) >1:
            print(' '.join(i))
        if len(i) == 1:
            print(i[0])
    

    
    
    

# 1680506, 2022-11-12 10:59:08, PPPP (100%)

#{guess : [st1 , st2]}
#{'Eren': ['Nami', 'Chopper', 'Brook']
# {fac : [st1 , st3]} {'faculty_b': ['Sanji', 'Franky']}
# {guess : [fac]} 
st = []
f = []
st_fac = []
fac2st = {}

g2st = {}
g = []
g_st = []

g2fac = {}

s = []
ans = []

i_in  = [int(e) for e in input().split()]
for i in range(i_in[0]):
    stu , fac = input().split()
    st.append(stu)
    f.append(fac)
    st_fac.append([fac , stu])

f = list(set(f))
for i in f:
    fac2st[i] = []
    
for i in st:
    for j in st_fac:
        if i in j:
            fac2st[j[0]] += [i]



for i in range(i_in[1]):
    i2 = [e for e in input().split()]
    g.append(i2[0])
    g_st.append(i2[1:])

for i in range(len(g)):
    g2st[g[i]] = g_st[i] 
    
for i in g:
    g2fac[i] = []

for k , v in g2st.items():
    facul = []
    for i in v:
        for j in st_fac:
            if i in j:
                facul.append(j[0])
    fc = set(facul)
    g2fac[k] = fc 
    
for i in range(i_in[2]):
    sol = [e for e in input().split()]
    s.append(sol)
    
for i in s:
    asd = []
    for j in i:
        asd.append(g2fac[j])
    res = asd[0]
    for i in asd:
        res = res.intersection(i)
    
    r = list(res)
    if len(r) == 0 :
        ans.append('None')
    else:
        r.sort()
        ans.append(r)
        
for i in ans:
    if i == 'None':
        print('None')
    else:
        if len(i) >1:
            print(' '.join(i))
        if len(i) == 1:
            print(i[0])
    

    
    
    


6530032721
# 1679262, 2022-11-12 10:01:16, PP-- (50%)

n = input().strip().split()
n1 = int(n[0])
n2 = int(n[1])
n3 = int(n[2])

student = {}
for i in range(n1) :
    s,f = input().strip().split()
    student[s] = f
    
guest = {}
for i in range(n2) :
    t = input().strip().split()
    g = t[0]
    stu = t[1::]
    guest[g] = set(stu)
    
group = []
for i in range(n3) :
    gr = input().strip().split()
    group.append(gr)
    
out = ''
for g in group :
    gr = {}
    for m in g :
        gr[m] = set()
        for e in guest[m] :
            gr[m].add(student[e])
    fac = []
    for e in gr :
        fac.append(gr[e])
    samef = set()
    for i in range(len(fac)-1) :
        samef = fac[i].intersection(fac[i+1])
    if len(samef) != 0 :
        out += ' '.join(list(samef)) + '\n'
    else :
        out += 'None' + '\n'
    gr = {}

print(out)

# 1679317, 2022-11-12 10:03:46, PPPP (100%)

n = input().strip().split()
n1 = int(n[0])
n2 = int(n[1])
n3 = int(n[2])

student = {}
for i in range(n1) :
    s,f = input().strip().split()
    student[s] = f
    
guest = {}
for i in range(n2) :
    t = input().strip().split()
    g = t[0]
    stu = t[1::]
    guest[g] = set(stu)
    
group = []
for i in range(n3) :
    gr = input().strip().split()
    group.append(gr)
    
out = ''
for g in group :
    gr = {}
    for m in g :
        gr[m] = set()
        for e in guest[m] :
            gr[m].add(student[e])
    fac = []
    for e in gr :
        fac.append(gr[e])
    samef = set()
    for i in range(len(fac)-1) :
        samef = fac[i].intersection(fac[i+1])
    if len(samef) != 0 :
        out += ' '.join(sorted(list(samef))) + '\n'
    else :
        out += 'None' + '\n'
    gr = {}

print(out)


6530036221
# 1679993, 2022-11-12 10:37:01, PP-- (50%)

N,M,K = input().split()
N = int(N)
M = int(M)
K = int(K)


student = {} 
faculty = {}
name_faculty = set()
for k in range(N):
    s,f = input().split()
    student[s] = f
    if f in faculty:
        faculty[f].append(s)
    else :
        faculty[f] = [s]
    name_faculty.add(f)

guess = {}  
data = {} 
for k in range(M):
    x = input().split()
    g = str(x[0])
    stu = x[1::]
    guess[g] = stu
    for e in stu :
        data[e] = g

for t in range(K):
    G = input().split()
    gf = {}
    for e in G:
        s = []
        for k in guess[e]:
            s.append(k)
        f = set()
        for k in s:
            f.add(student[k])
        f = list(f)
        gf[e] = f
    ans = []
    for e in name_faculty:
        c = 0
        for k in gf:
            if e in gf[k]:
                c+=1
        if c == len(gf):
            ans.append(e)
    if len(ans) >0 :
        print(" ".join(ans))
    else:
        print("None")

# 1680022, 2022-11-12 10:38:12, PPPP (100%)

N,M,K = input().split()
N = int(N)
M = int(M)
K = int(K)


student = {} 
faculty = {}
name_faculty = set()
for k in range(N):
    s,f = input().split()
    student[s] = f
    if f in faculty:
        faculty[f].append(s)
    else :
        faculty[f] = [s]
    name_faculty.add(f)

guess = {}  
data = {} 
for k in range(M):
    x = input().split()
    g = str(x[0])
    stu = x[1::]
    guess[g] = stu
    for e in stu :
        data[e] = g

for t in range(K):
    G = input().split()
    gf = {}
    for e in G:
        s = []
        for k in guess[e]:
            s.append(k)
        f = set()
        for k in s:
            f.add(student[k])
        f = list(f)
        gf[e] = f
    ans = []
    for e in name_faculty:
        c = 0
        for k in gf:
            if e in gf[k]:
                c+=1
        if c == len(gf):
            ans.append(e)
    if len(ans) >0 :
        print(" ".join(sorted(ans)))
    else:
        print("None")


6530063121
# 1679139, 2022-11-12 09:54:21, ---- (0%)

N,M,K=[int(e) for e in input().split()]
stu={} #student:faculty
for s in range (N):
    x,y=input().split()
    stu[x]=y
guest={} #guest:{faculty}
for ss in range(M):
    a=input().split()
    for i in a[1:]:
        if a[0] not in guest:guest[a[0]]=set()
        guest[a[0]].add(stu[i])
print(guest)
for sss in range(K):
    b=input().split()
    intersect=guest[b[0]]
    for u in b[1:]:
        intersect&=guest[u]
    if intersect==set():
        print("None")
    else:
        ans=sorted(intersect)
        print(" ".join(ans))
        
        

    


# 1679143, 2022-11-12 09:54:39, PPPP (100%)

N,M,K=[int(e) for e in input().split()]
stu={} #student:faculty
for s in range (N):
    x,y=input().split()
    stu[x]=y
guest={} #guest:{faculty}
for ss in range(M):
    a=input().split()
    for i in a[1:]:
        if a[0] not in guest:guest[a[0]]=set()
        guest[a[0]].add(stu[i])
for sss in range(K):
    b=input().split()
    intersect=guest[b[0]]
    for u in b[1:]:
        intersect&=guest[u]
    if intersect==set():
        print("None")
    else:
        ans=sorted(intersect)
        print(" ".join(ans))
        
        

    



6530071121
# 1679258, 2022-11-12 10:01:09, ---- (0%)

N,M,K = [int(e) for e in input().split()]
gradper = {} # {name : fal}
gradfal = {} # {fal : name}
for i in range(N):
    name, fal = input().split()
    gradper[name] = fal
    if fal not in gradfal:
        gradfal[fal] = [name]
    else :
        gradfal[fal] += [name]

congrat = {} #{guest : namewhograd}
for i in range(M):
    x = input().split()
    gradmain = []
    guest = x[0]
    for e in x[1:]:
        gradmain.append(e)
    congrat[guest] = gradmain

for i in range(K):
    x = input().split()
    ans = []
    for e in x:
        check = set()
        for k in congrat[e]:
            if gradper[k] not in check:
                check.add(gradper[k])
        ans.append(check)
    last = []
    for i in range(len(ans)-1):
        if ans[i] & ans[i+1] :
            y = ans[i] & ans[i+1]
            for u in sorted(y):
                last.append(u)
    if len(last) == 0:
        print("None")
    else :
        last.sort()
        print(" ".join(last))
# 1679547, 2022-11-12 10:16:10, PPPP (100%)

N,M,K = [int(e) for e in input().split()]
gradper = {} # {name : fal}
gradfal = {} # {fal : name}
for i in range(N):
    name, fal = input().split()
    gradper[name] = fal
    if fal not in gradfal:
        gradfal[fal] = [name]
    else :
        gradfal[fal] += [name]

congrat = {} #{guest : namewhograd}
for i in range(M):
    x = input().split()
    gradmain = []
    guest = x[0]
    for e in x[1:]:
        gradmain.append(e)
    congrat[guest] = gradmain

for i in range(K):
    x = input().split()
    ans = []
    for e in x:
        check = set()
        for k in congrat[e]:
            if gradper[k] not in check:
                check.add(gradper[k])
        ans.append(check)
    last = ans[0]
    for i in range(1,len(ans)):
        y = last & ans[i]
        last = y
    if last == set():
        print("None")
    else :
        last = sorted(last)
        print(" ".join(last))

6530082021
# 1678975, 2022-11-12 09:45:55, compilation error (0%)

n = [int(e) for e in input().split()]
grad = {}
for i in range(n[0]):
    name,fac = input().split()
    if fac not in grad:
        grad[fac] = {name}
    else:
        grad[fac].add(name)
visit = {}
for i in range(n[1]):
    k = input()).split()
    if k[0] not in visit:
        visit[k[0]] = set()
    for j in range(1,len(k)):
        for e in grad:
            if k[j] in grad[e]:
                visit[k[0]].add(e)
for i in range(n[2]):
    k = input().split()
    check = set(grad.keys())
    for j in range(len(k)):
        if k[j] in visit:
            check = check & visit[k[j]]
    if check != set():
        x = sorted(check)
        print(' '.join(check))
    else:
        print('None')
# 1679019, 2022-11-12 09:48:00, PPPP (100%)

n = [int(e) for e in input().split()]
grad = {}
for i in range(n[0]):
    name,fac = input().split()
    if fac not in grad:
        grad[fac] = {name}
    else:
        grad[fac].add(name)
visit = {}
for i in range(n[1]):
    k = input().split()
    if k[0] not in visit:
        visit[k[0]] = set()
    for j in range(1,len(k)):
        for e in grad:
            if k[j] in grad[e]:
                visit[k[0]].add(e)
for i in range(n[2]):
    k = input().split()
    check = set(grad.keys())
    for j in range(len(k)):
        if k[j] in visit:
            check = check & visit[k[j]]
    if check != set():
        x = sorted(check)
        print(' '.join(x))
    else:
        print('None')

6530087221
# 1679376, 2022-11-12 10:07:00, P--- (25%)

Number = input().split()
# print(Number)
N = int(Number[0])
M = int(Number[1])
K = int(Number[2]) 
nisit = {}
for i in range(N) :
    x = input().split()
    nisit[x[0]] = x[1]
# print(nisit)

guest = {}
for i in range(M) :
    y = input().split()
    list = []
    for i in range(1,len(y),1):
        list += [y[i]]
    guest[y[0]] = list
# print(guest)

for i in range(K) :
    z = input().split()
    check = []
    check_number = 0
    total = []
    temp = []
    for i in z:
        for j in guest[i] :
            if nisit[j] not in temp :
                temp += [nisit[j]]
            elif nisit[j] in temp :
                check += [nisit[j]]
            if check.count(nisit[j]) == len(z) :
                total += [nisit[j]]
            else :
                pass
#     print(total)
    if total == [] :
        print(None)
    else :
        total.sort()
        print(' '.join(total))
                
            
            
    
    
# 1679475, 2022-11-12 10:12:40, PPPP (100%)

Number = input().split()
# print(Number)
N = int(Number[0])
M = int(Number[1])
K = int(Number[2]) 
nisit = {}
for i in range(N) :
    x = input().split()
    nisit[x[0]] = x[1]
# print(nisit)

guest = {}
for i in range(M) :
    y = input().split()
    list = []
    for i in range(1,len(y),1):
        list += [y[i]]
    guest[y[0]] = list
# print(guest)

for i in range(K) :
    z = input().split()
    check = []
    check_number = 0
    total = []
    temp = []
    for i in z:
        for j in guest[i] :
            if nisit[j] not in temp :
                temp += [nisit[j]]
            elif nisit[j] in temp :
                check += [nisit[j]]
            if check.count(nisit[j]) == len(z)-1 :
                total += [nisit[j]]
            else :
                pass
#     print(total)
    if total == [] :
        print(None)
    else :
        total.sort()
        print(' '.join(total))

6530104221
# 1678480, 2022-11-12 08:55:50, ---- (0%)

x=input()
print(x)
# 1681047, 2022-11-12 11:17:25, PPPP (100%)

faculty=dict() ; g=dict() ; lol=dict()

n,m,k=[int(e) for e in input().split()]
for i in range(n):
    bd,fc=input().split()
    if fc not in faculty:
        faculty[fc]=[bd]
    elif fc in faculty:
        faculty[fc].append(bd)
    lol[bd]=fc
    
# print(lol)
#         
# print(faculty)

for j in range(m):
    x=input().split()
    g[x[0]]=x[1:]
    
# print(g)
    
for l in range(k):
    x=input().split() ; fac2=[] ; fac=[]
    for e in x:
        fac.append(g[e])
#     print(fac)
    new=[]
    for e in fac:
        new0=[]
        for f in e:
            new0.append(lol[f])
        new.append(new0)
#     print(new)
    ans=set(new[0])
    for i in range(len(new)):
        ans=ans.intersection(new[i])
#     print(ans)
    if ans==set(): print('None')
    else:
        l=[]
        for e in ans:
            l.append(e)
        out=''
        for f in sorted(l):
            out+=(f+' ')
        print(out[:-1])

6530109421
# 1679738, 2022-11-12 10:25:06, PP-- (50%)

a, b, c = input().split()
a = int(a)
b = int(b)
c = int(c)
sung = {}
for i in range(a):
    m, n = input().split()
    if n not in sung:
        sung[n] = {m}
    else:
        sung[n].add(m)
pai = {}
for i in range(b):
    t = input().split()
    for j in range(1, len(t)):
        if t[0] not in pai:
            pai[t[0]] = {t[j]}
        else:
            pai[t[0]].add(t[j])
for i in range(c):
    t = input().split()
    s = set()
    for j in t:
        for k in pai:
            if k == j:
                for l in pai[k]:
                    for h in sung:
                        if l in sung[h]:
                            if s == set():
                                s.add(h)
                                break
                            else:
                                s = s.intersection(h)
                                break
    s = sorted(s)
    if len(s) == 0:
        print('None')
    else:
        print(' '.join(s))
# 1679901, 2022-11-12 10:31:53, PPPP (100%)

a, b, c = input().split()
a = int(a)
b = int(b)
c = int(c)
sung = {}
for i in range(a):
    m, n = input().split()
    if n not in sung:
        sung[n] = {m}
    else:
        sung[n].add(m)
pai = {}
for i in range(b):
    t = input().split()
    for j in range(1, len(t)):
        if t[0] not in pai:
            pai[t[0]] = {t[j]}
        else:
            pai[t[0]].add(t[j])
for i in range(c):
    t = input().split()
    d = set()
    for j in t:
        s = set()
        for k in pai:
            if k == j:
                for l in pai[k]:
                    for h in sung:
                        if l in sung[h]:
                            s.add(h)
        if d == set():
            d = s
        else:
            d = d.intersection(s)
    d = sorted(d)
    if len(d) == 0:
        print('None')
    else:
        print(' '.join(d))

6530123121
# 1679514, 2022-11-12 10:14:07, xxxx (0%)

'''
Ally America England Ukraine France
Ally Russia China
Enemy China America
Enemy France Iran
Enemy Iran Iraq
Table America England Iceland France Iran Russia Iraq
Table America England Russia
Table America England Thailand Russia China Iran China Japan
End
'''
AE = dict()
CO = dict()
while True:
    ip = input()
    if ip == 'End' :
        break
    p = ip.split()
    if p[0] != 'Table':
        if p[0] not in AE:
            AE[p[0]] = set()
        for e in p[1:]:
            AE[p[0]].add(e)
        for e in AE:
            for r in AE[e]:
                if r not in CO:
                    CO[r] = set()
                CO[r].add(e)
    else:
        Table = set()
        for i in p[1:]:
            for j in AE:
                if i in CO:
                    if len(CO[i]) > 1:
                        pass
                    elif i in AE[j]:
                        Table.add(j)
                else:
                    pass
        if len(Table) > 1 :
            print ('No')
        else :
            print ('Okay')


# 1679854, 2022-11-12 10:30:23, PPPP (100%)

a, b ,c = input().split()
fac = {} # {p:fac}
all_fac = set()
for i in range(int(a)):
    p , f = input().split()
    fac[p] = f
    all_fac.add(f)
all_fac = sorted(list(all_fac))

p_con = {} #{cong:{facA,facB}}
for i in range(int(b)):
    ip = input().split()
    cong = ip[0]
    p_con[cong] = set()
    for p in ip[1:]:
        p_con[cong].add(fac[p])
        
for i in range(int(c)):
    ip = input().split()
    f0 = set(p_con[ip[0]])
    for p in ip[1:]:
        f0 = f0 & set(p_con[p])

    if len(f0) == 0:
        print('None')
    else :
        f0 = list(f0)
        f0.sort()
        print (' '.join(f0))


6530128321
# 1679107, 2022-11-12 09:52:59, PP-- (50%)

stuF = {}
guestStu = {}
groups = []

a,b,c = [int(e) for e in input().split()]

for i in range(a):
    name, fac = input().split()
    stuF[name] = fac
for i in range(b):
    x = input().split()
    guestStu[x[0]] = x[1:]
for i in range(c):
    groups.append(input().split())

# print(stuF)
# print(guestStu)
# print(groups)

for i in guestStu:
    o = []
    x = guestStu[i]
    for j in x:
        o.append(stuF[j])
    guestStu[i] = o

for i in groups:
    ut = set(guestStu[i[0]])
    for j in i:
        ut = ut.intersection(set(guestStu[j]))
    if (ut == set()):
        print("None")
    else:
        print(" ".join(ut))
# 1679189, 2022-11-12 09:57:05, PPPP (100%)

stuF = {}
guestStu = {}
groups = []

a,b,c = [int(e) for e in input().split()]

for i in range(a):
    name, fac = input().split()
    stuF[name] = fac
for i in range(b):
    x = input().split()
    guestStu[x[0]] = x[1:]
for i in range(c):
    groups.append(input().split())

# print(stuF)
# print(guestStu)
# print(groups)

for i in guestStu:
    o = []
    x = guestStu[i]
    for j in x:
        o.append(stuF[j])
    guestStu[i] = o

for i in groups:
    ut = set(guestStu[i[0]])
    for j in i:
        ut = ut.intersection(set(guestStu[j]))
    if (ut == set()):
        print("None")
    else:
        ut = sorted(list(ut))
        print(" ".join(ut))

6530143721
# 1679303, 2022-11-12 10:03:06, P-P- (50%)

n,m,k = input().strip().split()
n,m,k = int(n), int(m), int(k)
faculty = {}
for i in range(n):
    n,f = input().strip().split()
    if f not in faculty:
        faculty[f] = [n]
    else:
        faculty[f].append(n)
ometeto = {}
for i in range(m):
    x = input().strip().split()
    if x[0] not in ometeto:
        ometeto[x[0]] = x[1:]
    else:
        ometeto[x[0]] += x[1:]
for i in range(k):
    x = input().strip().split()
    p = set()
    q = set()
    for j in range(len(x)):
        for o in ometeto[x[j]]:
            for u in faculty:
                for uu in faculty[u]:
                    if uu == o:
                        if j == 0:
                            p.add(u)
                        else:                            
                            q.add(u)
    z = p & q
    z = sorted(list(z))
    print(' '.join(z))
# 1680245, 2022-11-12 10:49:12, PPPP (100%)

n,m,k = input().strip().split()
n,m,k = int(n), int(m), int(k)
nam = []
fac = []
faculty = {}
for i in range(n):
    n,f = input().strip().split()
    if f not in faculty:
        faculty[f] = [n]
    else:
        faculty[f].append(n)
    nam.append(n)
    fac.append(f)
ometeto = {}
for i in range(m):
    x = input().strip().split()
    if x[0] not in ometeto:
        ometeto[x[0]] = x[1:]
    else:
        ometeto[x[0]] += x[1:]
for i in range(k):
    er = {}
    l = set()
    out = set()
    gogo = []
    x = input().strip().split()
    for j in range(len(x)):
        go = set()
        call = ometeto[x[j]]
        for f in call:
            if f in nam:
                o = nam.index(f)
                fa = fac[o]
                go.add(fa)
        gogo.append(go)
    out = []
    kuy = gogo[0]
    for m in gogo:
        kuy &= m
    if len(kuy) == 0:
        print('None')
    else:
        a = list(kuy)
        print(' '.join(sorted(a)))


'''n,m,k = input().strip().split()
n,m,k = int(n), int(m), int(k)
faculty = {}
for i in range(n):
    n,f = input().strip().split()
    if f not in faculty:
        faculty[f] = [n]
    else:
        faculty[f].append(n)
ometeto = {}
for i in range(m):
    x = input().strip().split()
    if x[0] not in ometeto:
        ometeto[x[0]] = x[1:]
    else:
        ometeto[x[0]] += x[1:]
for i in range(k):
    x = input().strip().split()
    p = set()
    q = set()
    for j in range(len(x)):
        for o in ometeto[x[j]]:
            for u in faculty:
                for uu in faculty[u]:
                    if uu == o:
                        if j == 0:
                            p.add(u)
                        else:                            
                            q.add(u)
    z = p & q
    z = sorted(list(z))
    print(' '.join(z))'''

6530151721
# 1679081, 2022-11-12 09:51:28, PP-- (50%)

a,b,c=[int(e) for e in input().split()]
facult={}
bandit={}
for i in range(a):
    name,fa=input().split()
    if fa not in bandit: bandit[fa]=[]
    bandit[fa].append(name)
    if name not in facult: facult[name]=fa
rom={}        
for i in range(b):
    x=input().split()
    kak=x[0]
    ban=x[1:]
    rom[kak]=ban
for i in range(c):
    x=input().split()
    t=set()
    d=1
    for e in rom[x[0]]:
        t.add(facult[e])
    while d!=len(x):
        g=set()
        for e in rom[x[d]]:
            g.add(facult[e])        
        t=t&g
        d+=1
    ans=[]
    for i in t:
        ans.append(t)
    if len(t)!=0:
        print(' '.join(t))
    else:print('None')

# 1679109, 2022-11-12 09:53:05, PPPP (100%)

a,b,c=[int(e) for e in input().split()]
facult={}
bandit={}
for i in range(a):
    name,fa=input().split()
    if fa not in bandit: bandit[fa]=[]
    bandit[fa].append(name)
    if name not in facult: facult[name]=fa
rom={}        
for i in range(b):
    x=input().split()
    kak=x[0]
    ban=x[1:]
    rom[kak]=ban
for i in range(c):
    x=input().split()
    t=set()
    d=1
    for e in rom[x[0]]:
        t.add(facult[e])
    while d!=len(x):
        g=set()
        for e in rom[x[d]]:
            g.add(facult[e])        
        t=t&g
        d+=1
    ans=[]
    for i in t:
        ans.append(t)
    
    if len(t)!=0:
        print(' '.join(sorted(t)))
    else:print('None')


6530163221
# 1679216, 2022-11-12 09:58:57, PP-- (50%)

[ N , M , K ] = [ int(e) for e in input().split() ]
data  = {}
Q = {}

while N > 0:
    [a, b] = [e for e in input().split()]
    data[a] = b
    N = N - 1
    
while M > 0:
    qu = [e for e in input().split()]
    for i in range(len(qu)):
        if i == 0:
            Q[qu[i]] = []
            n = i
        else:
            Q[qu[n]] = Q[qu[n]] + [qu[i]]
    M = M - 1
    
while K > 0:
    check = [e for e in input().split()]
    for i in range(len(check)):
        if i == 0:
            ans = set()
            for k in Q[check[i]]:
                ans = ans.union([data[k]])
        else:
            ano = set()
            for k in Q[check[i]]:
                ano = ano.union([data[k]])
            ans = ans.intersection(ano)
    if ans == set():
        print('None')
    else:
        out = str()
        for i in ans:
            out = out + i + " "
        print(out[:-1])
            
    K = K - 1
# 1679257, 2022-11-12 10:01:09, PPPP (100%)

[ N , M , K ] = [ int(e) for e in input().split() ]
data  = {}
Q = {}

while N > 0:
    [a, b] = [e for e in input().split()]
    data[a] = b
    N = N - 1
    
while M > 0:
    qu = [e for e in input().split()]
    for i in range(len(qu)):
        if i == 0:
            Q[qu[i]] = []
            n = i
        else:
            Q[qu[n]] = Q[qu[n]] + [qu[i]]
    M = M - 1
    
while K > 0:
    check = [e for e in input().split()]
    for i in range(len(check)):
        if i == 0:
            ans = set()
            for k in Q[check[i]]:
                ans = ans.union([data[k]])
        else:
            ano = set()
            for k in Q[check[i]]:
                ano = ano.union([data[k]])
            ans = ans.intersection(ano)
    if ans == set():
        print('None')
    else:
        out = str()
        O = []
        for i in ans:
            O += [i]
        O.sort()
        for i in O:
            out += i
            out += " "
        print(out[:-1])
            
    K = K - 1

6530165521
# 1679161, 2022-11-12 09:55:42, PP-- (50%)

n1, n2, n3 = [int(e) for e in input().split()]
# ids = {stu : fa}
ids = {}
for i in range(n1):
    data = input().split()
    ids[data[0]] = data[1]
        
# gue = {gue : stu}
gue = {}
for j in range(n2):
    data = input().split()
    if data[0] not in gue:
        gue[data[0]] = data[1:]
    else:
        gue[data[0]].append(data[1:])
ans = []
for k in range(n3):
    data = input().split()
    same = {}
    for e in data: #every e is gue
        same[e] = set()
        for f in gue[e]:
            same[e].add(ids[f])
            
    b = list(same.values())
    for i in range(len(b)):
        if i == 0:
            res = b[i]
        else:
            res = res.intersection(b[i])
    if len(res) == 0:
        ans.append('None')
    else:
        ans.append(sorted(res))
for e in ans:
    print(''.join(e))
        


# 1679190, 2022-11-12 09:57:07, PPPP (100%)

n1, n2, n3 = [int(e) for e in input().split()]
# ids = {stu : fa}
ids = {}
for i in range(n1):
    data = input().split()
    ids[data[0]] = data[1]
        
# gue = {gue : stu}
gue = {}
for j in range(n2):
    data = input().split()
    if data[0] not in gue:
        gue[data[0]] = data[1:]
    else:
        gue[data[0]].append(data[1:])
ans = []
for k in range(n3):
    data = input().split()
    same = {}
    for e in data: #every e is gue
        same[e] = set()
        for f in gue[e]:
            same[e].add(ids[f])
            
    b = list(same.values())
    for i in range(len(b)):
        if i == 0:
            res = b[i]
        else:
            res = res.intersection(b[i])
    if len(res) == 0:
        ans.append('None')
    else:
        ans.append(sorted(res))
for e in ans:
    if e != 'None':
        print(*e)
    else:
        print(e)
        



6530170621
# 1679970, 2022-11-12 10:35:37, PP-- (50%)

n=input().split()
faculty={}
for i in range(int(n[0])):
    k,f=input().split()
    faculty[k]=f
#print(faculty)
guestname={}
for i in range(int(n[1])):
    guest=input().split()
    for i in range(1,len(guest)):
        if guest[0] not in guestname:
            guestname[guest[0]]={faculty[guest[i]]}
        else:
            guestname[guest[0]].add(faculty[guest[i]])
#print(guestname)
output=[]
for i in range(int(n[2])):
    nameguest=input().split()
    for i in range(len(nameguest)-1):
        c=guestname[nameguest[i]]&guestname[nameguest[i+1]]
    if len(c)==0:
        output.append('None')
        #print('None')
    else:
        for e in c:
            output.append(e)
            #print(e)
for e in output:
    print(e)
# 1680555, 2022-11-12 11:01:23, PPPP (100%)

n=input().split()
faculty={}
for i in range(int(n[0])):
    k,f=input().split()
    faculty[k]=f
#print(faculty)
guestname={}
for i in range(int(n[1])):
    guest=input().split()
    for i in range(1,len(guest)):
        if guest[0] not in guestname:
            guestname[guest[0]]={faculty[guest[i]]}
        else:
            guestname[guest[0]].add(faculty[guest[i]])
#print(guestname)
output=[]
for i in range(int(n[2])):
    nameguest=input().split()
    c=guestname[nameguest[0]]
    for i in range(len(nameguest)-1):
        c=c&guestname[nameguest[i+1]]
    if len(c)==0:
        output.append('None')
    elif len(c)==1:
        for e in c:
            output.append(e)
    else:
        out=''
        last=[]
        for e in c:
            last.append(e)
        last.sort()
        for e in last:
            out+=e+' '
        output.append(out.strip())
#output.sort()
#print(output)
        #print('None')
#     else:
#         for e in c:
#             output.append(e)
#             #print(e)
for e in output:
    print(e)

6530174121
# 1678830, 2022-11-12 09:36:58, PPPP (100%)

n,m,k =[int(e) for e in input().split()]
fac_dict = {}
visitor_dict = {}
for i in range(n):
    student,faculty = input().split()
    fac_dict[student] = faculty
for i in range(m):
    info = input().split()
    visitor = info[0]
    grad = info[1:]
    visitor_dict[visitor] = set()
    for e in grad:
        visitor_dict[visitor].add(fac_dict[e])
for i in range(k):
    info = input().split()
    intersect = visitor_dict[info[0]]
    for e in visitor_dict:
        if e in info:
            intersect = intersect & visitor_dict[e]
    if intersect == set():
        print("None")
    else:
        print(" ".join(sorted(intersect)))
# 1680643, 2022-11-12 11:04:20, PPPP (100%)

n,m,k =[int(e) for e in input().split()]
fac_dict = {}
visitor_dict = {}
for i in range(n):
    student,faculty = input().split()
    fac_dict[student] = faculty
for i in range(m):
    info = input().split()
    visitor = info[0]
    grad = info[1:]
    visitor_dict[visitor] = set()
    for e in grad:
        visitor_dict[visitor].add(fac_dict[e])
for i in range(k):
    info = input().split()
    intersect = visitor_dict[info[0]]
    for e in visitor_dict:
        if e in info:
            intersect = intersect & visitor_dict[e]
    if intersect == set():
        print("None")
    else:
        print(" ".join(sorted(intersect)))

6530178721
# 1679020, 2022-11-12 09:48:01, ---- (0%)

n,m,k = input().split()
n,m,k = int(n),int(m),int(k)
faculty = {}
for i in range(n):
    name, fac = input().split()
    faculty[name] = fac

data = {}
for i in range(m):
    x = input().split()
    name = x[0]
    friend = x[1:]
    for e in friend:
        if name not in data:
            data[name] = [faculty[e]]
        else:
            data[name] += [faculty[e]]

for i in range(k):
    same = set()
    x = input().split()
    for e in range(len(x)-1):
        for a in data[x[e]]:
            for b in data[x[e+1]]:
                if a == b:
                    same.add(a)
    print(same)
            

# 1679449, 2022-11-12 10:11:24, PPPP (100%)

n,m,k = input().split()
n,m,k = int(n),int(m),int(k)
faculty = {}
for i in range(n):
    name, fac = input().split()
    faculty[name] = fac

data = {}
for i in range(m):
    x = input().split()
    name = x[0]
    data[name] = set()
    friend = x[1:]
    for e in friend:
        data[name].add(faculty[e])

out = []
for i in range(k):
    x = input().split()
    c = data[x[0]]
    for a in range(1,len(x)):
        c = c & data[x[a]]
    if len(c) == 0:
        print('None')
    else:
        c = list(c)
        c.sort()
        out = ' '.join(c)
        print(out)
            


6530181521
# 1678710, 2022-11-12 09:30:33, PPPP (100%)

n1,n2,n3 = [int(e) for e in input().strip().split()]
name = {}
for i in range(n1) :
    n,f = input().strip().split()
    name[n] = f

d = {}
for i in range(n2) :
    n = input().strip().split()
    d[n[0]] = set()
    for j in n[1:] :
        d[n[0]].add(name[j])
    
for i in range(n3) :
    n = input().strip().split()
    s = d[n[0]]
    for j in n[1:] :
        s &= d[j]
    if len(s) > 0 :
        print(' '.join(sorted(s)))
    else :
        print(None)
 
            
    
        
    

# 1680203, 2022-11-12 10:46:20, PPPP (100%)

n1,n2,n3=[int(e) for e in input().split()]
name = {n:f for i in range(n1) for n,f in [input().split()]}
d = {}
for i in range(n2) :
    n=input().split()
    d[n[0]]={name[j] for j in n[1:]}
for i in range(n3) :
    n=input().split()
    s=d[n[0]]
    for j in n[1:]:s&=d[j]
    if len(s)>0:print(' '.join(sorted(s)))
    else:print(None)

6530195321
# 1680283, 2022-11-12 10:50:35, PP-- (50%)

N, M, K = [int(e) for e in input().split()]

bandit_to_facul = {}
facul_to_bandits = {}
for i in range(N):
    bandit, facul = input().split()
    bandit_to_facul[bandit] = facul
    if facul not in facul_to_bandits:
        facul_to_bandits[facul] = list()
    facul_to_bandits[facul].append(bandit)


# print(bandit_to_facul)
# print(facul_to_bandits)

yad_to_x = {}
for i in range(M):
    x = input().split()
    yad = x[0]
    x = x[1:]
    yad_to_x[yad] = [e for e in x]

# print(yad_to_x)
 
for i in range(K):                 #yad: facul
    a = input().split()
    result = {}
    for e in a:  #a = yad1, yad2
        for v in yad_to_x[e]:
            if e not in result:
                result[e] = set()
            result[e].add(bandit_to_facul[v])
    sss = {} #facul: num
    for k,v in result.items():               #ถ้าคณะซ้ำำำำำ
        for each in v:
            if each not in sss:
                sss[each] = 0
            sss[each] += 1                                 
    refer = len(a)
    answer = []
    for k,v in sss.items():
        if v == refer:
            answer.append(k)
    if len(answer) > 0:
        answer = " ".join(answer)
        print(answer)
    else:
        print(None)
# 1680424, 2022-11-12 10:55:21, PPPP (100%)

N, M, K = [int(e) for e in input().split()]

bandit_to_facul = {}
facul_to_bandits = {}
for i in range(N):
    bandit, facul = input().split()
    bandit_to_facul[bandit] = facul
    if facul not in facul_to_bandits:
        facul_to_bandits[facul] = list()
    facul_to_bandits[facul].append(bandit)


# print(bandit_to_facul)
# print(facul_to_bandits)

yad_to_x = {}
for i in range(M):
    x = input().split()
    yad = x[0]
    x = x[1:]
    yad_to_x[yad] = [e for e in x]

# print(yad_to_x)
 
for i in range(K):                 #yad: facul
    a = input().split()
    result = {}
    for e in a:  #a = yad1, yad2
        for v in yad_to_x[e]:
            if e not in result:
                result[e] = set()
            result[e].add(bandit_to_facul[v])
    sss = {} #facul: num
    for k,v in result.items():               #ถ้าคณะซ้ำำำำำ
        for each in v:
            if each not in sss:
                sss[each] = 0
            sss[each] += 1                                 
    refer = len(a)
    answer = []
    for k,v in sss.items():
        if v == refer:
            answer.append(k)
    if len(answer) > 0:
        answer.sort()
        answer = " ".join(answer)
        print(answer)
    else:
        print(None)

6530197621
# 1678660, 2022-11-12 09:28:15, PP-- (50%)

[n,m,k] = [int(e) for e in input().split()]

bandit = {}
for i in range(n):
    [name, fac] = input().split()
    bandit[name] = fac
    
geust = {}
for i in range(m):
    x = input().split()
    name ,bd = x[0], x[1:]
    fac_set = set()
    for e in bd:
        fac_set = fac_set.union({bandit[e]})
    geust[name] = fac_set
    
target = {}
for i in range(k):
    x = input().split()
    fac_go = geust[x[0]]
    for e in x:
        fac_go = fac_go.intersection(geust[e])
    if len(fac_go) > 0:
        print(' '.join(list(fac_go)))
    else:
        print("None")
# 1678676, 2022-11-12 09:28:50, PPPP (100%)

[n,m,k] = [int(e) for e in input().split()]

bandit = {}
for i in range(n):
    [name, fac] = input().split()
    bandit[name] = fac
    
geust = {}
for i in range(m):
    x = input().split()
    name ,bd = x[0], x[1:]
    fac_set = set()
    for e in bd:
        fac_set = fac_set.union({bandit[e]})
    geust[name] = fac_set
    
target = {}
for i in range(k):
    x = input().split()
    fac_go = geust[x[0]]
    for e in x:
        fac_go = fac_go.intersection(geust[e])
    if len(fac_go) > 0:
        print(' '.join(sorted(list(fac_go))))
    else:
        print("None")

6530206621
# 1678864, 2022-11-12 09:38:41, PPPP (100%)

n1,n2,n3 = input().split()
where = {}
for i in range(int(n1)):
    dit, fac = input().split()
    where[dit] = fac
    
visit = {}
for i in range(int(n2)):
    t = input().split()
    visit[t[0]] = set()
    for dit in t[1:]:
        visit[t[0]].add(where[dit])
#     print(visit)
    
for i in range(int(n3)):
    t = input().split()
    c = visit[t[0]]
    for a in t:
        c = visit[a]&c
    c = sorted(list(c))
#     print(c)
    
    ans = ""
    for a in c:
        ans += a
        ans += " "
    if len(ans) != 0:
        print(ans)
    else:
        print("None")


# 1680280, 2022-11-12 10:50:28, PPPP (100%)

# (09:38:44)
n1,n2,n3 = input().split()
where = {}
for i in range(int(n1)):
    dit, fac = input().split()
    where[dit] = fac
    
visit = {}
for i in range(int(n2)):
    t = input().split()
    visit[t[0]] = set()
    for dit in t[1:]:
        visit[t[0]].add(where[dit])
#     print(visit)
    
for i in range(int(n3)):
    t = input().split()
    c = visit[t[0]]
    for a in t:
        c = visit[a]&c
    c = sorted(list(c))
#     print(c)
    
    ans = ""
    for a in c:
        ans += a
        ans += " "
    if len(ans) != 0:
        print(ans.strip())
    else:
        print("None")


6530208921
# 1680921, 2022-11-12 11:14:05, PP-- (50%)

N,K,M = [int(e) for e in input().split()]
bandit_fac = {}
for i in range(N):
    bandit,fac = input().split()
    bandit_fac[bandit] = fac
    
guest_target = {}
for j in range(K):
    a = input().split()
    if a[0] not in guest_target: 
        guest_target[a[0]] = set()
    for i in range(1,len(a)):
        guest_target[a[0]].add(bandit_fac[a[i]])

our_guest = []
for k in range(M):
    our_guest.append(input().split())
    
for a in our_guest:
    fac_int = guest_target[a[0]]
    for g in a:
        fac_int &= guest_target[g]
    if len(fac_int) > 0:
        h = []
        for e in fac_int:
            h.append(e)
        print(' '.join(h))
    else:
        print('None')
    
        
    


# 1680943, 2022-11-12 11:15:00, PPPP (100%)

N,K,M = [int(e) for e in input().split()]
bandit_fac = {}
for i in range(N):
    bandit,fac = input().split()
    bandit_fac[bandit] = fac
    
guest_target = {}
for j in range(K):
    a = input().split()
    if a[0] not in guest_target: 
        guest_target[a[0]] = set()
    for i in range(1,len(a)):
        guest_target[a[0]].add(bandit_fac[a[i]])

our_guest = []
for k in range(M):
    our_guest.append(input().split())
    
for a in our_guest:
    fac_int = guest_target[a[0]]
    for g in a:
        fac_int &= guest_target[g]
    if len(fac_int) > 0:
        h = []
        for e in fac_int:
            h.append(e)
        h.sort()
        print(' '.join(h))
    else:
        print('None')

6530213021
# 1679522, 2022-11-12 10:14:41, ---- (0%)

x = input().strip().split() #8 3 2

grad_fac = {}
guest_list = {}
guest_fac = {}

for i in range(int(x[0])):
    grad, fac = input().strip().split()
    grad_fac[grad] = fac
    
for i in range(int(x[1])):
    s = input()
    pos = s.find(" ")
    guest, grads_vi = s[:pos], s[pos+1:].split()
    guest_list[guest] = grads_vi
    
#print(grad_fac)
#{'Luffy': 'faculty_a', 'Nami': 'faculty_a', 'Sanji': 'faculty_b', 'Zoro': 'faculty_c', 'Robin': 'faculty_c', 'Chopper': 'faculty_a','Brook': 'faculty_c', 'Franky': 'faculty_b'}
#print(guest_list)
#{'Eren': ['Nami', 'Chopper', 'Brook'], 'Anya': ['Sanji', 'Luffy'], 'Yaiba': ['Franky']}    

for guests in guest_list:
    guest_fac[guests] = set()
    for grads in guest_list[guests]:
        guest_fac[guests].add(grad_fac[grads])
    
#print(guest_fac)
#{'Eren': {'faculty_a', 'faculty_c'}, 'Anya': {'faculty_a', 'faculty_b'}, 'Yaiba': {'faculty_b'}}
    
    
for i in range(int(x[2])):
    b = input().split()
    final = guest_fac[b[0]]
    for i in range(1,len(b)):
        final = guest_fac[b[i]] & final
    if len(final) > 0:
        print(final)
    else:
        print("None")
        
# 1679569, 2022-11-12 10:17:46, PPPP (100%)

x = input().strip().split() #8 3 2

grad_fac = {}
guest_list = {}
guest_fac = {}

for i in range(int(x[0])):
    grad, fac = input().strip().split()
    grad_fac[grad] = fac
    
for i in range(int(x[1])):
    s = input()
    pos = s.find(" ")
    guest, grads_vi = s[:pos], s[pos+1:].split()
    guest_list[guest] = grads_vi
    
#print(grad_fac)
#{'Luffy': 'faculty_a', 'Nami': 'faculty_a', 'Sanji': 'faculty_b', 'Zoro': 'faculty_c', 'Robin': 'faculty_c', 'Chopper': 'faculty_a','Brook': 'faculty_c', 'Franky': 'faculty_b'}
#print(guest_list)
#{'Eren': ['Nami', 'Chopper', 'Brook'], 'Anya': ['Sanji', 'Luffy'], 'Yaiba': ['Franky']}    

for guests in guest_list:
    guest_fac[guests] = set()
    for grads in guest_list[guests]:
        guest_fac[guests].add(grad_fac[grads])
    
#print(guest_fac)
#{'Eren': {'faculty_a', 'faculty_c'}, 'Anya': {'faculty_a', 'faculty_b'}, 'Yaiba': {'faculty_b'}}
    
    
for i in range(int(x[2])):
    b = input().split()
    final = guest_fac[b[0]]
    output = []
    for i in range(1,len(b)):
        final = guest_fac[b[i]] & final
    for fac in final:
        output.append(fac)
    if len(output) > 0:
        print(' '.join(sorted(final)))
    else:
        print("None")

6531311021
# 1679178, 2022-11-12 09:56:41, ---- (0%)

num = [int(e) for e in input().split()]
nisit = {}
for i in range(num[0]):
    n, f = input().split()
    nisit[n] = f
print(nisit)

guess = {}
for i in range(num[1]):
    x = input().split()
    guess[x[0]] = set()
    for e in x[1:]:
        guess[x[0]].add(nisit[e])
print(guess)

for i in range(num[2]):
    ans = input().split()
    anss = guess[ans[0]]
    x = set()
    for e in ans[1:]:
        x = anss & guess[e]
    x = sorted(list(x))
    print(anss,x)
    if len(x) == 0:
        print('None')
    else:
        print(' '.join(x))
# 1679280, 2022-11-12 10:02:03, PPPP (100%)

num = [int(e) for e in input().split()]
nisit = {}
for i in range(num[0]):
    n, f = input().split()
    nisit[n] = f
# print(nisit)

guess = {}
for i in range(num[1]):
    x = input().split()
    guess[x[0]] = set()
    for e in x[1:]:
        guess[x[0]].add(nisit[e])
# print(guess)

for i in range(num[2]):
    ans = input().split()
    x = guess[ans[0]]
    for e in ans[1:]:
        x = x & guess[e]
    x = sorted(list(x))
    # print(anss,x)
    if len(x) == 0:
        print('None')
    else:
        print(' '.join(x))

6531319021
# 1679542, 2022-11-12 10:16:00, PP-- (50%)

n,m,k = [int(e) for e in input().split()]
std = {}
for i in range(n):
    name,fac = input().split()
    std[name] = fac

guest = {}
for i in range(m):
    name = input().split()
    fac = []
    for j in name[1:]:
        fac += [std[j]]
    guest[name[0]] = set(fac)

for i in range(k):
    impt = input().split()
    result = guest[impt[0]]
    for j in impt:
        result = result & guest[j]
    if len(result) == 0:
        print("None")
    else:
        for fac in result:
            print(fac)
# 1679596, 2022-11-12 10:19:27, PPPP (100%)

n,m,k = [int(e) for e in input().split()]
std = {}
for i in range(n):
    name,fac = input().split()
    std[name] = fac

guest = {}
for i in range(m):
    name = input().split()
    fac = []
    for j in name[1:]:
        fac += [std[j]]
    guest[name[0]] = set(fac)

for i in range(k):
    impt = input().split()
    result = guest[impt[0]]
    for j in impt:
        result = result & guest[j]
    if len(result) == 0:
        print("None")
    else:
        print(' '.join(sorted(result)))

6531336721
# 1679212, 2022-11-12 09:58:41, P-P- (50%)

n, m, k = input().split()
n = int(n)
m = int(m)
k = int(k)
dct = {} #{faculty: stu}
dct2 = {} #{stu: faculty}
for i in range(n):
    stu, fac = input().split()
    if fac not in dct:
        dct[fac] = [stu]
    else:
        dct[fac] += [stu]
    dct2[stu] = fac
dct_guest = {}
for i in range(m):
    x = input().split()
    guest = x[0]
    stu = x[1:]
    y = []
    for e in stu:
        if e in dct2.keys():
            y.append(dct2[e])
    if guest not in dct_guest:
        dct_guest[guest] = y
    else:
        dct_guest[guest] += y
for i in range(k):
    x = input().split()
    first = set(dct_guest[x[0]])
    for e in x[1:]:
        first = first.intersection(set(dct_guest[e]))
    out = sorted(first)
    print(' '.join(out))

# 1679256, 2022-11-12 10:01:06, PPPP (100%)

n, m, k = input().split()
n = int(n)
m = int(m)
k = int(k)
dct = {} #{faculty: stu}
dct2 = {} #{stu: faculty}
for i in range(n):
    stu, fac = input().split()
    if fac not in dct:
        dct[fac] = [stu]
    else:
        dct[fac] += [stu]
    dct2[stu] = fac
dct_guest = {}
for i in range(m):
    x = input().split()
    guest = x[0]
    stu = x[1:]
    y = []
    for e in stu:
        if e in dct2.keys():
            y.append(dct2[e])
    if guest not in dct_guest:
        dct_guest[guest] = y
    else:
        dct_guest[guest] += y
for i in range(k):
    x = input().split()
    first = set(dct_guest[x[0]])
    for e in x[1:]:
        first = first.intersection(set(dct_guest[e]))
    out = sorted(first)
    if len(out) == 0:
        print('None')
    else:
        print(' '.join(out))


6531346021
# 1679202, 2022-11-12 09:57:54, PP-- (50%)

num=input().split()
fac={}
for i in range(int(num[0])):
    l=input().split()
    fac[l[0]]=l[1]
g={}
for i in range(int(num[1])):
    l=input().split()
    g[l[0]]=l[1:]
for i in range(int(num[2])):
    l=input().split()
    
    f=set(fac.values())
    #print(f)
    for j in l:
        ff=[]
        for k in g[j]:
            ff.append(fac[k])
        f=f.intersection(set(ff))
            
    
    if len(f)==0:
        print('None')
    else:
        print(' '.join(f))
    #print(f)
#print(fac)
#print(g)

# 1679730, 2022-11-12 10:24:47, PPPP (100%)

num=input().split()
fac={}
for i in range(int(num[0])):
    l=input().split()
    fac[l[0]]=l[1]
g={}
for i in range(int(num[1])):
    l=input().split()
    g[l[0]]=l[1:]
for i in range(int(num[2])):
    l=input().split()
    
    f=set(fac.values())
    #print(f)
    for j in l:
        ff=[]
        for k in g[j]:
            ff.append(fac[k])
        f=f.intersection(set(ff))
            
    
    if len(f)==0:
        print('None')
    else:
        print(' '.join(sorted(f)))
    #print(f)
#print(fac)
#print(g)


6531347621
# 1678941, 2022-11-12 09:43:43, PP-- (50%)

n,m,k = [int(e) for e in input().strip().split()]

stdfaculty = {} # {luffy:Faculty_a,...}
for n in range(n):
    stdname, faculty = input().strip().split()
    stdfaculty[stdname] = faculty

stdguest = {} # {daddy:luffy,...}
for m in range(m):
    inp = input().strip().split()
    stdguest[inp[0]] = inp[1:]

for k in range(k):
    samefaculty = set()
    guests = input().strip().split()
    for g in range(len(guests)):
        if guests[g] not in stdguest:
            print('None')
            break
        if g == 0:
            for eachstudent in stdguest[guests[g]]:
                samefaculty.add(stdfaculty[eachstudent])
        else:
            temp = set()
            for eachstudent in stdguest[guests[g]]:
                temp.add(stdfaculty[eachstudent])
            samefaculty = samefaculty.intersection(temp)
    if len(samefaculty) != 0:
        print(' '.join(samefaculty))
    else:
        print('None')
            
    
# 1678960, 2022-11-12 09:44:32, PPPP (100%)

n,m,k = [int(e) for e in input().strip().split()]

stdfaculty = {} # {luffy:Faculty_a,...}
for n in range(n):
    stdname, faculty = input().strip().split()
    stdfaculty[stdname] = faculty

stdguest = {} # {daddy:luffy,...}
for m in range(m):
    inp = input().strip().split()
    stdguest[inp[0]] = inp[1:]

for k in range(k):
    samefaculty = set()
    guests = input().strip().split()
    for g in range(len(guests)):
        if guests[g] not in stdguest:
            print('None')
            break
        if g == 0:
            for eachstudent in stdguest[guests[g]]:
                samefaculty.add(stdfaculty[eachstudent])
        else:
            temp = set()
            for eachstudent in stdguest[guests[g]]:
                temp.add(stdfaculty[eachstudent])
            samefaculty = samefaculty.intersection(temp)
    if len(samefaculty) != 0:
        print(' '.join(sorted(samefaculty)))
    else:
        print('None')
            
    

6532068721
# 1678765, 2022-11-12 09:33:36, compilation error (0%)

n, m, k = (int(k) for k in input().strip().split(" "))

bandit_to_faculty = {}

for i in range(n):
    bandit, faculty = input().strip().split(" ")
    bandit_to_faculty[bandit] = faculty

guest_to_faculty = {}

for i in range(m):
    tokens = input().strip().split(" ")
    guest = tokens[0]
    visits = tokens[1:]

    visits_set = set()
    for bandit in visits:
        visits_set.add(bandit_to_faculty[bandit])

    guest_to_faculty[guest] = visits_set

for i in range(k):
    guests = input().strip().split(" ")

    guest_visit: set = guest_to_faculty[guests[0]]
    for guest in guests[1:]:
        guest_visit = guest_visit.intersection(guest_to_faculty[guest])

    if not len(guest_visit):
        print("None")
    else:
        print(" ".join(sorted(list(guest_visit))))

# 1678766, 2022-11-12 09:33:46, PPPP (100%)

n, m, k = (int(k) for k in input().strip().split(" "))

bandit_to_faculty = {}

for i in range(n):
    bandit, faculty = input().strip().split(" ")
    bandit_to_faculty[bandit] = faculty

guest_to_faculty = {}

for i in range(m):
    tokens = input().strip().split(" ")
    guest = tokens[0]
    visits = tokens[1:]

    visits_set = set()
    for bandit in visits:
        visits_set.add(bandit_to_faculty[bandit])

    guest_to_faculty[guest] = visits_set

for i in range(k):
    guests = input().strip().split(" ")

    guest_visit = guest_to_faculty[guests[0]]
    for guest in guests[1:]:
        guest_visit = guest_visit.intersection(guest_to_faculty[guest])

    if not len(guest_visit):
        print("None")
    else:
        print(" ".join(sorted(list(guest_visit))))

6532084721
# 1678555, 2022-11-12 09:22:36, PP-- (50%)

n,m,k = input().split()

name = {}
name2 = {}
for i in range(int(n)):
    tmp = input().split()
    name[tmp[0]] = tmp[1]

for i in range(int(m)):
    tmp = input().split()
    name2[tmp[0]] = set()
    for j in tmp[1:]:
        name2[tmp[0]].add(name[j])

for i in range(int(k)):
    tmp = input().split()
    z = name2[tmp[0]]
    for j in tmp[1:]:
        z = z.intersection(name2[j])
    if len(z) == 0:
        print('None')
    else:
        print(*z)
# 1678605, 2022-11-12 09:25:08, PPPP (100%)

n,m,k = input().split()

name = {}
name2 = {}
for i in range(int(n)):
    tmp = input().split()
    name[tmp[0]] = tmp[1]

for i in range(int(m)):
    tmp = input().split()
    name2[tmp[0]] = set()
    for j in tmp[1:]:
        name2[tmp[0]].add(name[j])

for i in range(int(k)):
    tmp = input().split()
    z = name2[tmp[0]]
    for j in tmp[1:]:
        z = z.intersection(name2[j])
    ans = [e for e in z]
    if len(z) == 0:
        print('None')
    else:
        print(*sorted(ans))

6532141821
# 1678981, 2022-11-12 09:46:20, P--- (25%)

n, m, k = input().strip().split()
nisitdata = {}
allfaculty = set()
for i in range(int(n)) :
    nisitname, faculty = input().strip().split()
    nisitdata[nisitname] = faculty
    allfaculty.add(faculty)
guestdata = {}
for i in range(int(m)) :
    guest = input().strip().split()
    guestdata[guest[0]] = guest[1:]
for i in range(int(k)) :
    comparelist = input().strip().split()
    facultytovisit = []
    for guestname in comparelist :
        nisit2visit = guestdata[guestname]
        for nisitname in nisit2visit :
            facultytovisit.append(nisitdata[nisitname])
    facultytovisit.sort()
    ans = set()
    for facultyname in allfaculty :
        c = 0
        for e in facultytovisit :
            if e == facultyname :
                c += 1
        if c > len(comparelist) :
            ans.add(facultyname)
    anslist = []
    for e in ans :
        anslist.append(e)
    anslist.sort()
    if len(anslist) == 0 :
        print("None")
    else :
        print(" ".join(anslist))
# 1679005, 2022-11-12 09:47:24, PPPP (100%)

n, m, k = input().strip().split()
nisitdata = {}
allfaculty = set()
for i in range(int(n)) :
    nisitname, faculty = input().strip().split()
    nisitdata[nisitname] = faculty
    allfaculty.add(faculty)
guestdata = {}
for i in range(int(m)) :
    guest = input().strip().split()
    guestdata[guest[0]] = guest[1:]
for i in range(int(k)) :
    comparelist = input().strip().split()
    facultytovisit = []
    for guestname in comparelist :
        nisit2visit = guestdata[guestname]
        for nisitname in nisit2visit :
            facultytovisit.append(nisitdata[nisitname])
    facultytovisit.sort()
    ans = set()
    for facultyname in allfaculty :
        c = 0
        for e in facultytovisit :
            if e == facultyname :
                c += 1
        if c >= len(comparelist) :
            ans.add(facultyname)
    anslist = []
    for e in ans :
        anslist.append(e)
    anslist.sort()
    if len(anslist) == 0 :
        print("None")
    else :
        print(" ".join(anslist))

6532152721
# 1678748, 2022-11-12 09:32:24, PP-- (50%)

n, m, k = [int(x) for x in input().split()]

nisit = dict()
guest = dict()

for i in range(n):
    s = input().split()
    nisit[s[0]] = s[1]

for i in range(m):
    s = input().split()
    guest[s[0]] = set()
    for e in s[1:]:
        guest[s[0]].add(nisit[e])

for i in range(k):
    s = input().split()
    ans = guest[s[0]]
    for e in s[1:]:
        ans = ans & guest[e]
    if not ans:
        print("None")
    else:
        ans = sorted(ans)
        tmp = ""
        for e in ans: tmp += e
        print(tmp)



# 1678791, 2022-11-12 09:35:02, PPPP (100%)

n, m, k = [int(x) for x in input().split()]

nisit = dict()
guest = dict()

for i in range(n):
    s = input().split()
    nisit[s[0]] = s[1]

for i in range(m):
    s = input().split()
    guest[s[0]] = set()
    for e in s[1:]:
        guest[s[0]].add(nisit[e])

for i in range(k):
    s = input().split()
    ans = guest[s[0]]
    for e in s[1:]:
        ans = ans & guest[e]
    if not ans:
        print("None")
    else:
        ans = sorted(ans)
        tmp = ""
        for e in ans: tmp += e + " "
        print(tmp)

6532180221
# 1679047, 2022-11-12 09:49:15, ---- (0%)

n,m,k = input().split()
n = int(n)
m = int(m)
k = int(k)

name_to_faculty = {}

for i in range(n):
    a,b = input().split()
    name_to_faculty[a] = b

go_vst = {}
for i in range(m):
    a = input().split()
    visitor = a[0]
    visit = []
    for i in range(1,len(a)):
        visit += [a[i]]
    
    go_vst[visitor] = visit
    
for i in range(k):
    a = input().split()
    ans = set()
    st = 1
    for name in a:
        s = set()
        for visitee in go_vst[name]:
          s.add(name_to_faculty[visitee])
          
        if st:
            st = 0
            ans.union(s)
        else:
          ans.intersection(s)
    
    l = list(ans)
    l.sort()
    if(len(l) == 0 ):
        print("None")
    else: print(" ".join(l))
    
# 1679122, 2022-11-12 09:53:37, PPPP (100%)

n,m,k = input().split()
n = int(n)
m = int(m)
k = int(k)

name_to_faculty = {}

for i in range(n):
    a,b = input().split()
    name_to_faculty[a] = b

go_vst = {}
for i in range(m):
    a = input().split()
    visitor = a[0]
    visit = []
    for i in range(1,len(a)):
        visit += [a[i]]
    
    go_vst[visitor] = visit
    
for i in range(k):
    a = input().split()
    ans = set()
    st = 1
    for name in a:
        s = set()
        for visitee in go_vst[name]:
          s.add(name_to_faculty[visitee])
        # print(*s,st)  
        if st:
            st = 0
            ans = ans.union(s)
        else:
          ans = ans.intersection(s)
        
    l = list(ans)
    l.sort()
    if(len(l) == 0 ):
        print("None")
    else: print(" ".join(l))
    

6531801121
# 1679206, 2022-11-12 09:58:05, ---- (0%)

n, m, k = input().strip().split()
n, m, k = int(n), int(m), int(k)

std_fac = dict()
for i in range(n):
    std, fac = input().strip().split()
    std_fac[std] = fac

who_to = dict()
for i in range(m):
    op = input().strip().split()
    who = op[0]
    whom = op[1:]
    temp = set()
    for std in whom:
        temp |= {std_fac[std]}
    who_to[who] = temp
    

for i in range(k):
    lst_who = input().strip().split()
    print(lst_who)
    final = who_to[lst_who[0]]
    remain = lst_who[1:]
    for who in remain:
        final &= who_to[who]
    if final == set():
        print("None")
    else:
        ans = sorted(final)
        print(" ".join(ans))
# 1679227, 2022-11-12 09:59:27, PPPP (100%)

n, m, k = input().strip().split()
n, m, k = int(n), int(m), int(k)

std_fac = dict()
for i in range(n):
    std, fac = input().strip().split()
    std_fac[std] = fac

who_to = dict()
for i in range(m):
    op = input().strip().split()
    who = op[0]
    whom = op[1:]
    temp = set()
    for std in whom:
        temp |= {std_fac[std]}
    who_to[who] = temp
    

for i in range(k):
    lst_who = input().strip().split()
    final = who_to[lst_who[0]]
    remain = lst_who[1:]
    for who in remain:
        final &= who_to[who]
    if final == set():
        print("None")
    else:
        ans = sorted(final)
        print(" ".join(ans))

6130394021
# 1680485, 2022-11-12 10:58:30, PPPP (100%)

a,b,c = input().split()
a = int(a)
b = int(b)
c = int(c)
stu_fac = {}
for i in range(a):
    stu,fac = input().split()
    stu_fac[stu] = fac
#print(stu_fac)
guest_stu = {}
guest_stu_1 = {}
for i in range(b):
    guest = input().split()
    guest_stu[guest[0]] = guest[1:]
for k,v in guest_stu.items():
    for e in v:
        if k in guest_stu_1:
            guest_stu_1[k].add(stu_fac[e])
        else:
            guest_stu_1[k] = {stu_fac[e]}
#print(guest_stu_1)
for i in range(c):
    lis = []
    in_guest = input().split()
    for e in in_guest:
        lis.append(guest_stu_1[e])
    ans = lis[0]
    for i in range(len(lis)):
        ans = ans & lis[i]
    ans_list = []
    if ans == set():
        print("None")
    else:
        for e in ans:
            ans_list.append(e)
        ans_list.sort()
        print(" ".join(ans_list))

6230063921
# 1679333, 2022-11-12 10:04:55, PPPP (100%)

n,m,k = [int(e) for e in input().split()]
d = {} #{facult:name}
for i in range(n):
    name,f = input().split()
    #if f not in d.keys(): d[name] = []
    d[name] = f

d2 = {} #{visitor: name}
for i in range(m):
    x = input().split()
    d2[x[0]] = x[1:]

    
for e in range(k):
    n = input().split()
    ex = []
    x = d2[n[0]]
    for i in x:
        ex.append(d[i])
    x = set(ex)
    for i in range(1,len(n)):
        ex2 = set()
        y = d2[n[i]]
        for i in y:
            ex2.add(d[i])
        x = x & ex2
    if len(x) == 0:
        print('None')
    else:
        x = sorted(x)
        print(*x)

6230065121
# 1680900, 2022-11-12 11:13:19, PPPP (100%)

n, m, k = map(int, input().split())
dict_graduate = {}
dict_visitor = {}

def faculty_visit(visitors_name):
    list_faculty = []
    output_list = []
    for j in range(len(visitors_name)):
        list_faculty.append(set(dict_visitor[visitors_name[j]]))
    output_list = list_faculty[0]
    for j in range(len(list_faculty)-1):
        output_list = output_list.intersection(list_faculty[j+1])
    if len(output_list) == 0: 
        return 'None'
    sorted_output_list = sorted(output_list)
    return ' '.join(sorted_output_list)

for i in range(n):
    name,fac = input().split()
    dict_graduate[name] = fac
for i in range(m):
    visitors = input().split()
    dict_visitor[visitors[0]] = []
    for j in range(len(visitors)-1):
        dict_visitor[visitors[0]].append(dict_graduate[visitors[j+1]])
for i in range(k):
    visitors_name = input().split()
    print(faculty_visit(visitors_name))

6230071921
# 1679811, 2022-11-12 10:28:44, PPPP (100%)

n,m,k=input().split()
n=int(n);m=int(m);k=int(k);
senoir={};fac=[]
for i in range(n):
    name1,major=input().strip().split()
    senoir[name1]=major
    if major not in fac:
        fac.append(major)
people={}
for j in range(m):
    name=input().strip().split()
    people[name[0]]=name[1:]   
ans={};key=[];final=[]
for s in fac:
    ans[s]=set()
for e in range(k):
    humen=input().strip().split()
    for x in humen:
        key.append(x)
    for l in range(len(key)):
        for t in range(len(people[key[l]])):
            a=senoir[people[key[l]][t]]
            ans[a].add(key[l])
    for p in ans:
        if len(ans[p])==len(humen):
            final.append(p)
    if len(final)==0:
        print('None')
    else:
        final.sort()
        print(' '.join(final))
    for s in fac:
        ans[s]=set()
    key=[];final=[]
    
               
               
               
               
               

6231121821
# 1680863, 2022-11-12 11:12:03, PPPP (100%)

x = input().split()
N = int(x[0])
M = int(x[1])
K = int(x[2])
#grad = {grad:fac}
grad = {}
for i in range(N):  ###N
    a = input().split()
    grad[a[0]] = a[1]
#comer = {comer:[grad]}
comer = {}
for i in range(M):  ###M
    b = input().split()
    comer[b[0]] = b[1:]
samepl = []
for i in range(K):  ###K
    c = input().split()
    samepl.append(c)

#samepl1 = {fac:[comer]}
samepl1 = {}
for k,v in comer.items():
    for i in range(len(v)):
        if grad[v[i]] not in samepl1: samepl1[grad[v[i]]] = []
        if k not in samepl1[grad[v[i]]]:
            samepl1[grad[v[i]]].append(k)
#samepl2 = {comer:[fac]} ***
samepl2 = {}
for k,v in comer.items():
    if k not in samepl2: samepl2[k] = []
    for i in range(len(v)):
        if grad[v[i]] not in samepl2[k]:
            samepl2[k].append(grad[v[i]])
fa = sorted(list(samepl1))
for i in range(len(samepl)):
    same = []
    s = []
    for j in range(len(samepl[i])):
        same.append(samepl2[samepl[i][j]])
    same.sort()
    for a in fa:
        b = 0
        for i in range(len(same)):
            if a in same[i]:
                b += 1
        if b == len(same):
            s.append(a)
    if len(s) == 0:
        print('None')
    else:
        print(' '.join(s))

6231417621
# 1680584, 2022-11-12 11:02:33, PPPP (100%)

n,m,k=input().strip().split()
nkana={}
for i in range(int(n)):
    a,b=input().strip().split()
    nkana[a]=b
d={}

for i in range(int(m)):
    x=input().strip().split()
    if x[0] not in d:
        d[x[0]]=[]
    d[x[0]].extend(x[1::])
d2={}
d2={f:{''} for f in d.keys()}
for key,v in d.items(): 
    for i in v:#i=ชื่อ nami
        if i in nkana:
            d2[key].add(nkana[i])
            
for i in range(int(k)):
    y=input().strip().split()
    #หาที่เหมือนกันy=Eren,Anya
    #{คณะ คณะ}
    allkana=set()
    for i in y:#i=eren
        if len(allkana)==0:
            allkana.update(d2[i])
        t=allkana.intersection(d2[i])
    t=list(t)
    t.sort()
    if len(t)==1:#ไม่มี
        print('None')
    elif len(t)>1:
        print(' '.join(t[1::]))

6231425621
# 1679574, 2022-11-12 10:17:58, PPPP (100%)

N, M, K = [int(e) for e in input().split()]
name = {} #{ชื่อบันดิด: คณะ}
fac_n = {} #{คณะ:[[[บันดิด,บันดิด,........]}
for i in range(N):
    ban, fac = input().split()
    name[ban] = fac
    
    if fac not in fac_n:
        fac_n[fac] = []
    
    fac_n[fac].append(ban)
#---------------------------

kang = {} #{ชื่อแขก : [[บันดิด, บันดิด]}
re_kang = {}
for i in range(M):
    x = input().split()
    kang[x[0]] = x[1::]
    
    for e in x[1::]:
        re_kang[x[0]] = e

    

for i in range(K): #รายชื่อของแขก ที่สนใจ
    focus = []
    
    x = input().split()
    for k in x:
        focus.append(kang[k])
    
    out1 = set()
    for ban in focus[0]:
        out1.add(name[ban])
    
    out2 = set()
    for e in focus[1:]:
        for ban in e:
            out2.add(name[ban])
        out1 = out1&out2
        out2 = set()
    
    
    if out1 == set():
        print('None')
    else:
        print(' '.join(sorted(out1)))
            
          

6230187021
# 1680070, 2022-11-12 10:40:06, PPPP (100%)

rub=[int(e) for e in input().strip().split()]
bun_f={}
for i in range(rub[0]):
    x=input().strip().split()
    if x[1] not in bun_f:
        bun_f[x[1]]=[x[0]]
    else:
        bun_f[x[1]]+=[x[0]]
k_bun={}
for i in range(rub[1]):
    t=input().strip().split()
    if t[0] not in k_bun:
        k_bun[t[0]]=t[1:]
    else:
        k_bun[t[0]]+=t[1:]
new={}
for o in k_bun:
    for p in k_bun[o]:
        for h in bun_f:
            if p in bun_f[h]:
                if o not in new:
                    new[o]={h}
                else:
                    new[o].add(h)
ans=[]
for i in range(rub[2]):
    w=input().strip().split()
    s=new[w[0]]
    for l in w[1:]:
        s=s.intersection(new[l])
    ans+=[s]
for k in ans:
    if k==set():
        print('None')
    else:
        po=[j for j in k]
        po.sort()
        print(' '.join(po))

6230425421
# 1680139, 2022-11-12 10:43:18, PPPP (100%)

N,M,K = input().split()
# {fac : [name,..]}
names = {}
facs = {}
for i in range(int(N)) :
    n, fac = input().split()
    if fac not in names : names[fac] = []
    names[fac].append(n)
    facs[n] = fac
# {ชื่อ : [มาเยี่ยม,..] }
# {ชื่อ : [เยี่ยมที่,..] }
visit_place = {}
for i in range(int(M)) :
    x = input().split()
    for e in x[1:] :
        if x[0] not in visit_place : visit_place[x[0]] = set()
        visit_place[x[0]].add(facs[e])
        
z = []
for i in range(int(K)) :
    x = input().split()
    initial = visit_place[x[0]]
    for e in x[1:] :
        initial = initial & visit_place[e]
    if initial == set() :
        print('None')
    else :
        print(' '.join(sorted(list(initial))))

6431523621
# 1679093, 2022-11-12 09:51:55, PPPP (100%)

n,m,k = [ int(i) for i in input().split()]
bun = {}
for i in range(n) :
    bt,cn = [i.strip() for i in input().split()]
    bun[bt] = cn
con = {}
for i in range(m) :
    a = input().split()
    c = a[0]
    bt = a[1:]
    cg = []
    for i in bt :
        if c not in con :
            con[c] = {bun[i]}
        else :
            con[c].add(bun[i])
for i in range(k) :
    inter = [ i.strip() for i in input().split()]
    same = con[inter[0]]
    for i in range(1,len(inter[1:])+1) :
        same = same.intersection(con[inter[i]])
    if len(same)==0 :
        print('None')
    else :
        ans = []
        for i in same :
            ans.append(i)
        ans.sort()
        print(' '.join(ans))
    
    


6430064721
# 1679800, 2022-11-12 10:28:27, PPPP (100%)

N,M,K = input().split()
a={}
for i in range(int(N)):
    name,fa=input().split()
    a[name] = fa
    
c={}
for i in range(int(M)):
    g=set()
    x=input().split()
    for e in x[1::]:
        g.add(a[e])
    c[x[0]] = g


for i in range(int(K)):
    x=input().split()
    z=set()
    z.update(c[x[0]])
    for j in x[1::]:
        z= z & set(c[j])
    if len(z)!= 0:
        if len(z) ==1:
            l2=[i for i in z]
            print(l2[0])
        else:
            l= [i for i in z]
            l.sort()
            print(" ".join(l))
    else:
        print("None")
    




6431510421
# 1679948, 2022-11-12 10:34:38, PPPP (100%)

x = input().split()
d = {}
for i in range(int(x[0])):
    y = input().split()
    d[y[0]] = y[1]
d1 = {}
for i in range(int(x[1])):
    y = input().split()
    d1[y[0]] = y[1::]
ans = []
for i in range(int(x[2])):
    y = input().split()
    d3 = {}
    for e in y:
        if e not in d3:
            d3[e] = set()
        for j in d1[e]:
             d3[e].add(d[j])
    a = list(d3.values())
    s = a[0]
    for i in range(len(a)):
        s = s&a[i]
    if s == set():
        ans.append(['None'])
    s1 = list(s)
    s1.sort()
    ans.append(s1)

for e in ans:
    print(' '.join(e))

6430382221
# 1679429, 2022-11-12 10:10:27, PPPP (100%)

n,m,k = input().split()
kana = {}
fs = {}
ali = []
for i in range(int(n)):
    a,b = input().split()
    kana[a] = b
for i in range(int(m)):
    t = input().split()
    if t[0] not in fs:
        fs[t[0]] = t[1:]
for i in range(int(k)):
    t = input().split()
    lol = []
    for e in t:
        j = []
        for k in fs[e]:
            j.append(kana[k])
        lol.append(set(j))
    kl = lol[0]
    for i in lol:
        kl = kl&i
    na = []
    if kl == set():
        print('None')
    else:
        for i in kl:
            na.append(i)
        na.sort()
        print(' '.join(na))
            

6432036521
# 1679653, 2022-11-12 10:22:09, PPPP (100%)

n,m,k = [int(e) for e in input().split()]
f=dict()
y=dict()
for i in range(n):
    name,fac = input().split()
    f[name]=fac
for i in range(m):
    x = input().split()
    z = set()
    for i in range(1,len(x)):
        z.add(f[x[i]])
    y[x[0]]=z
ans = list()
for i in range(k):
    x = input().split()
    c = y[x[0]]
    for i in range(1,len(x)):
        c = c.intersection(y[x[i]])
    d = list(c)
    d.sort()
    ans.append(d)

for c in ans:
    if len(c)!=0:
        print(" ".join(c))
    else:
        print("None")

6530006421
# 1679032, 2022-11-12 09:48:32, PPPP (100%)

# Task Quiz_3_2
# This Code was written by Folkiesss Desu!!

bandit = dict()  # {bandit: {fal}}
to_go = dict()  # {parent: {fal}}

n, m, k = [int(x) for x in input().split()]

for i in range(n):
    nisit, fal = input().split()
    if nisit not in bandit:
        bandit[nisit] = set()
    bandit[nisit] |= {fal}

for i in range(m):
    line = input().split()
    parent = line[0]

    if parent not in to_go:
        to_go[parent] = set()
    
    for nisit in line[1:]:
        to_go[parent] |= bandit[nisit]

for i in range(k):
    line = input().split()
    destination = to_go[line[0]]

    for pp in line[1:]:
        destination &= to_go[pp]

    if destination:
        print(" ".join(sorted(destination)))
    else:
        print("None")


6530007021
# 1678953, 2022-11-12 09:44:11, PPPP (100%)

N,M,K = [int(e) for e in input().split()]
st = dict()
vi = dict()
for i in range(N):
    na,fa = input().split()
    st[na] = fa
for i in range(M):
    b = input().split()
    vi[b[0]] = b[1:]
for i in range(K):
    same = dict()
    m = input().split()
    for i in m:
        same[i] = set()
        for j in vi[i]:#nsme student
            same[i].add(st[j])
    out = same[m[0]].copy()
    for i in same:
        out = out&same[i]
    if out == set():
        print('None')
    else:
        print(' '.join(sorted(out)))

6530008721
# 1679038, 2022-11-12 09:48:46, PPPP (100%)

n, m, k = [int(e) for e in input().strip().split()]

#COLLECTING N
ndata = {}
for i in range(n):
    t = input().strip().split()
    if t[0] not in ndata: ndata[t[0]] = ''
    ndata[t[0]] += (t[1])

#COLLECTING M AND CONVERT TO SET SO THAT I CAN INTERSECT
mdata = {}
for i in range(m):
    c = input().strip().split()
    if c[0] not in mdata: mdata[c[0]] = set()
    visit = [ndata[e] for e in c[1:]]
    for e in visit:
        mdata[c[0]].add(e)

#GETTING THE JOB DONE
output = []
for i in range(k):
    q = input().strip().split()
    result = mdata[q[0]]
    for e in q:
        result &= mdata[e]
    output.append(sorted(result))

for e in output:
    if len(e) > 0:
        for d in e: print(d)
    else:
        print('None')



6530014421
# 1679090, 2022-11-12 09:51:47, PPPP (100%)

n,m,k=[int(e) for e in input().strip().split()]
st={}
for i in range(n):
    name,f=input().strip().split()
    if f in st:
        st[f].add(name)
    else:
        st[f]={name,}
guest={} #guest:{stname}
for i in range(m):
    x=input().strip().split()
    name=x[0]
    guest[name]=set(x[1:])
for i in range(k):
    y=input().strip().split()
    f={}
    for e in y:
        a=set()
        f[e]=a
        for stu in guest[e]:
            for fac in st:
                if stu in st[fac]:
                    f[e].add(fac)
    for g in f:
        ans=f[g]
        break
    for g in f:
        ans&=f[g]
    if len(ans)==0:
        print('None')
    else:
        print(' '.join(sorted(ans)))


6530017321
# 1679766, 2022-11-12 10:26:36, PPPP (100%)

c={}
n1, n2, n3=input().split()
for i in range(int(n1)):
    n, f=input().split()
    if n not in c:
        c[n]=f
v={}
for i in range(int(n2)):
    x=input().split()
    for e in range(len(x)-1):
        if x[0] not in v:
            v[x[0]]=[]
        v[x[0]].append(x[e+1])
#print(c)
#print(v)
for i in range(int(n3)):
    x=input().split()
    list={}
    for n in x:
        for nc in v[n]:
            if n not in list:
                list[n]=set()
            list[n].add(c[nc])
    visit=set()
    for n in list:
        if len(visit)==0:
            visit=(list[n])
        visit &= list[n]
    if len(visit) == 0:
        print('None')
    else:
        ans=[]
        for f in visit:
            ans.append(f)
        ans.sort()
        print(' '.join(ans))
    


6530018021
# 1679984, 2022-11-12 10:36:23, PPPP (100%)

a, b, c = (input()).split()

student = []
dicto = {}
guest = []
for i in range(0,int(a)):
    stu = input().split()
    student.append(stu)
for i in range(0,int(b)):
    tea = input().split()
    dicto[tea[0]] = tea[1:]
for i in range(0,int(c)):
    gue = input().split()
    guest.append(gue)

fact = {}
for i in range(0,len(student)):
    if student[i][1] in fact:
        fact[student[i][1]].append(student[i][0])
    else:
        fact[student[i][1]] = [student[i][0]]

stud = {}
for i in range(0,len(student)):
    stud[student[i][0]] = student[i][1]
    
checker = []
for i in range(0,len(guest)):
    checker2 = []
    for j in range(0,len(guest[i])):
        listtt = []
        listt = []
        listt += dicto[guest[i][j]]
        for k in listt:
            listtt.append(stud[k])
        ii = set()
        ii.update(listtt)
        checker2.append(ii)
    checker.append(checker2)

output = []
for i in range(0,len(checker)):
    for j in range(0,len(checker[i])):
        if j == 1:
            c = checker[i][j - 1] & checker[i][j]
        elif j > 1:
            c = c & checker[i][j]
    output.append(c)
for i in range(0,len(output)):
    if len(output[i]) == 0:
        print('None')
    else:
        listoutput = list(output[i])
        sortedoutput = sorted(listoutput)
        strout = ''
        for j in range(0,len(sortedoutput)):
            if j == 0:
                strout += sortedoutput[j]
            else:
                strout += ' ' + sortedoutput[j]
        print(strout)

6530023021
# 1679337, 2022-11-12 10:05:17, PPPP (100%)

N,M,K = [int(e) for e in input().strip().split()]
a = {}
b = {}

for i in range(N):
    bd,kn = input().strip().split()
    a[bd] = kn
for k in range(M):
    x = input().split()
    for i in range(1,len(x)):
        if x[0] not in b:
            b[x[0]] = [x[i]]
        else:
            b[x[0]].append(x[i])
for i in range(K):
    ss = input().split()
    count = []
    for k in ss:
        c = b[k]
        g = set()
        for ff in c:
            g.add(a[ff])
        count.append(g)
    ans = count[0]
    for e in count:
        ans = ans & e
    if ans == set():
        print('None')
    else:
        yans = sorted(ans)
        print(' '.join(yans))
            

6530028221
# 1678968, 2022-11-12 09:44:54, PPPP (100%)

d1={}
d2={}
n,m,d=[int(e) for e in input().split()]
for i in range(n) :
    k,v=[str(e) for e in input().split()]
    d1[k]=v
for i in range(m) :
    a=[str(e) for e in input().split()]
    d2[a[0]]=set()
    for k in a[1::] :
        d2[a[0]].add(d1[k])
for i in range(d) :
    q=set()
    b=[str(e) for e in input().split()]
    q=set(d2[b[0]])
    for k in b[1::] :
        q=q&d2[k]
    r=sorted(list(q))
    if len(r)==0 :
        print('None')
    else :
        print(' '.join(r))
    



6531403021
# 1678893, 2022-11-12 09:40:44, PPPP (100%)

s = input().split()
n = int(s[0])
m = int(s[1])
k = int(s[2])
bandit = dict()
for i in range (n) :
    s = input().split()
    bandit[s[0]] = s[1]
family = dict()
for i in range (m) :
    s = input().split()
    l = s.pop(0)
    family[l] = s


result = list()
for i in range (k) :
    s = input().split()
    m = list()
    x = set()
    for j in range (len(s)) :
        for k in family :
            if s[j] == k :
                if j == 0 :
                    for r in family[k] :
                        x.add(bandit[r])
                        
                else :
                    y = set()
                    for r in family[k] :
                        y.add(bandit[r])
                    x = x.intersection(y)
    if len(x) != 0 :
        r = sorted(list(x))
        result.append(r)
    else :
        result.append(["None"])

for i in result :
    for j in i :
        print(j,end = " ")
    print("")


6531407621
# 1679919, 2022-11-12 10:32:31, PPPP (100%)

a, b, c = input().split()
a = int(a); b = int(b); c = int(c)

p = {}
for i in range(a):
    x = input().split()
    p[x[0]] = x[1]

kb = {}
for i in range(b):
    x = input().split()
    kb[x[0]] = x[1:]
    
l = {}
for k,v in kb.items():
    f = []
    for e in v:
        if p[e] not in f:
            f.append(p[e])
    l[k] = f
  

for i in range(c):
    x = input().split()
    l1 = []
    for name in x:
        l1.append(set(l[name]))
    
    s = l1[0]
    for j in range(1, len(l1)):
        s = s & l1[j]
    list_s = list(s)
    list_s.sort()
    if len(s) != 0:
        print(" ".join(list_s))
    else:
        print("None")

6531409921
# 1679260, 2022-11-12 10:01:14, PPPP (100%)

x = input().strip().split()
N,M,K = int(x[0]),int(x[1]),int(x[2])
u = {}
for i in range(N):
    m,f = input().strip().split()
    if f not in u:
        u[f] = set()
    u[f].add(m)
guest = {}
for i in range(M):
    x = input().split()
    if x[0] not in guest:
        guest[x[0]] = set()
    for j in x[1:]:
        for f in u:
            if j in u[f]:
                guest[x[0]].add(f)

for i in range(K):
    l = []
    g1 = input().split()
    s = guest[g1[0]]
    for k in g1:
        s = s&guest[k]
    
    for i in s:
        l.append(i)
    if l != []:
        l = sorted(l)
        print(' '.join(l))
    else:
        print('None')

6531514021
# 1679091, 2022-11-12 09:51:49, PPPP (100%)

faculty_name = {}
n,m,o = [int(e) for e in input().split()]
x = [input().split() for i in range(n)]
n_f = {}
f_n = {}
for a,b in x :
    n_f[a] = b
    if b not in f_n :
        f_n[b] = [a]
    else :
        f_n[b].append(a)
y = {e[0]:e[1:] for e in [input().split() for i in range(m)]}
for k,v in y.items() :
    for i in range(len(v)):
        v[i] = n_f[v[i]]
    y[k] = set(v)
members = [input().split() for i in range(o)]

result = []
for e in members:
    r = y[e[0]]
    for c in e[1:]:
        r &= y[c]
    if r != set() :
        result.append(' '.join(sorted(list(r))))
    else:
        result.append('None')    
for e in result:
    print(e)


6530029921
# 1680754, 2022-11-12 11:08:00, PPPP (100%)


y= input().strip().split()
n,m,o= int(y[0]),int(y[1]),int(y[2])

fac = dict()
for i in range(n):
    each = input().strip().split()
    if each[1] not in fac:
        d = dict()
        d[each[0]] = []
        fac[each[1]] = d
    else:
        temp = fac.get(each[1])
        if each[0] not in temp:
            temp[each[0]] = []
            fac[each[1]] = temp
            




for i in range(m):
    x = input().strip().split()
    for z in x[1:]:
        
        for j in fac:
            for k in fac[j]:
                if z in k:
                    fac[j][k].append(x[0])




for i in range(o):
    
    x = input().strip().split()
    
    all = []
    for j in x:
        rest = set()
        temp = set()
        for p in fac:
            for z in fac[p]:
                for c in fac[p][z]:
                    if j in c:
                        rest.add(p)
                        
                        
       
        all.append(rest)
    
    start = all[0]
    result = {}
    for i in range(1,len(all)):
        result = start.intersection(all[i])
        start = result
    if len(result) == 0:
        print("None")
    else:
        FINAL = sorted([i for i in result])
        b = ""
        for i in FINAL:
            b+=i+" " 
        print(b[:-1:])

6530040721
# 1679810, 2022-11-12 10:28:43, PPPP (100%)

N,M,K = [int(e) for e in input().split()]

z1 ={} #บันดิต : คณะ
z2 = [] # บันดิต
z3 = {} #แขก : คณะ
z4 = [] #แขก
z5 = [] # สถานที่ของแขกแต่ละคน
c = 0
p = []
for i in range(N):
    x,y = input().split()
    z1[x] = y
    if x not in z2:
        z2.append(x)

for i in range(M):
    bunandkak = input().split()
    bandit = []
    for e in bunandkak:
        if e not in z2:
            z4.append(e)
        else:
            bandit.append(e)
    for i in sorted(bandit):
        if z4[0] not in z3: z3[z4[0]] = []
        z3[z4[0]].append(z1[i])

    z4 = []
    
for i in range(K):
    p = []
    z = input().split()
    for i in z:
        z5.append(z3[i])
    for i in z5:
        d0 = []
        for e in i:
            for n in z5:
                if e in n:
                    c+=1
            if c >= len(z5):
                d0.append(e)
            c = 0
        for i in d0:
            if i not in p:
                p.append(i)
    z5 = []
    if p == []:
        print('None')
    else:
        print(' '.join(p))

6530045921
# 1680003, 2022-11-12 10:37:21, PPPP (100%)

n = input().split()
n1 = int(n[0])
n2 = int(n[1])
n3 = int(n[2])
d1 = {}#fac:name
d2 = {}#name : nameนิสิต
d = {}
for i in range (n1) :
    name,fac = input().split()
    if fac not in d1 :
        d1[fac] = [name]
    else :
        d1[fac].append(name)
    d[name] = fac
for i in range (n2) :
    x = input().split()
    for i in range (len(x[1:])) :
        if x[0] not in d2 :
            d2[x[0]] = {d[x[i+1]]}
        else :
            d2[x[0]].add(d[x[i+1]])

def check(x) :
    c = []
    c2 = []
    a1 = []
    dx = {}
    ans = []
    for e in d2 :
        c.append([e,list(d2[e])])
    for i in range (len(x)) :
        c2.append(list(d2[x[i]]))
    for i in range (len(c2)) :
        for j in range (len(c2[i])) :
            if c2[i][j] not in a1 :
                a1.append(c2[i][j])
                dx[c2[i][j]] = 0
    for i in range (len(c2)) :
        for j in range (len(c2[i])) :
            if c2[i][j] in dx :
                dx[c2[i][j]] += 1
    for e in dx :
        if dx[e] == len(x) :
            ans.append(e)
    return ans     
ans = []
for i in range (n3) :
    x = input().split()
    ans.append(check(x))
for i in range (len(ans)) :
    if ans[i] == [] :
        print('None')
    else :
        ans[i].sort()
        print(' '.join(ans[i]))

6530049421
# 1678897, 2022-11-12 09:41:09, PPPP (100%)

#Quiz 3_2 Graduation Ceremony

n1,n2,n3 = [ int(e) for e in input().split()]

nisit_faculty = dict()
faculty_nisit = dict()
for _ in range(n1):
    nisit, faculty = input().split()
    nisit_faculty[nisit] = faculty
    if faculty in faculty_nisit:
        faculty_nisit[faculty].append(nisit)
    else:
        faculty_nisit[faculty] = [nisit]
 
guest_nisit = dict()
for _ in range(n2):
    x = input().split()
    guest = x[0]
    guest_nisit[guest] = list()
    for nisit in x[1:]:
        guest_nisit[guest].append(nisit)
        
for _ in range(n3):
    output = list()
    guests = input().split()
    output = set()
    for nisit in guest_nisit[guests[0]]:
        output.add(nisit_faculty[nisit])
    for guest in guests[1:]:
        destinations = set()
        for nisit in guest_nisit[guest]:
            destinations.add(nisit_faculty[nisit])
        output =  output & destinations
    output = sorted(output)
    if len(output) != 0:
        print(" ".join(output))
    else:
        print('None')
        
    
        


6530053921
# 1679434, 2022-11-12 10:10:41, PPPP (100%)

n,m,k = [int(e) for e in input().split()]
d1 = {}
for i in range(n) :
    name, fal = input().split()
    d1[name] = fal
d2 = {}
for i in range(m) :
    namel = input().split()
    d2[namel[0]] = []
    for j in range(1,len(namel)) :
        d2[namel[0]].append(namel[j])
namelist = []
for i in range(k) :
    namel = input().split()
    namelist.append(namel)
rfal = []
for name in namelist :
    rfal_l = []
    fal_l = []
    for k in name :
        l = d2[k]
        f = []
        for n in l :
            if d1[n] not in f :
                f.append(d1[n])
        f.sort()
        fal_l.append(f)
    for f in fal_l[0] :
        t = True
        for ff in fal_l :
            if f not in ff :
                t = False
        if t :
            rfal_l.append(f)
    rfal_l.sort()
    if len(rfal_l) == 0 :
        rfal.append(['None'])
    else :
        rfal.append(rfal_l)
for i in rfal :
    print(' '.join(i))

6530059721
# 1678900, 2022-11-12 09:41:14, PPPP (100%)

#good_LUCK

nisit = {}
N,M,K = [int(i) for i in input().strip().split()]

for i in range(N):
    name,fac = input().strip().split()
    nisit[name] = fac
    
kaak = {}
for i in range(M):
    inp = input().strip().split()
    kname = inp[0]
    nname = inp[1::]
    
    kaak[kname] = set()
    for nn in nname:
        kaak[kname].add(nisit[nn])

for i in range(K):
    pp = input().strip().split()
    ans = kaak[pp[0]]
    for nn in pp:
        ans = ans & kaak[nn]
    
    if ans == set():
        print("None")
    else:
        ans = sorted(ans)
        print(" ".join(ans))


6530067721
# 1679443, 2022-11-12 10:11:12, PPPP (100%)

n1,n2,n3= input().split()
n1 = int(n1)
n2 = int(n2)
n3 = int(n3)
name = {}
clust = {}
for i in range(n1):
    op,f = input().split()
    name[op] = f
lll = {}
for i in range(n2):
    kag = input().split()
    a = kag[1:]
    ad = set()
    for i in a:
        ad.add(name[i])
    lll[kag[0]] = ad
for i in range(n3):
    ff = input().split()
    for i in ff[1:]:
        lll[ff[0]] &= lll[i]
    if len(lll[ff[0]]) != 0:
        aaa = list(lll[ff[0]])
        aaa.sort()
        print(" ".join(aaa))
    else:
        print("None")


6530072821
# 1678756, 2022-11-12 09:32:58, PPPP (100%)

N,M,K = [int(e) for e in input().strip().split()]
bundit = {}
for i in range(N):
    name, facu = input().strip().split()
    bundit[name]=facu
visitor = {}
for i in range(M):
    bundits = input().strip().split()
    name = bundits.pop(0)
    visitor[name] = set(bundits)

for i in range(K):
    using = set()
    congrade =  set(input().strip().split())
    first = True
    for vis in congrade:
        if first:
            for b in visitor[vis]:
                using.add(bundit[b])
            first = False
        else:
            v = set()
            for b in visitor[vis]:
                v.add(bundit[b])
            using = using&v
    print(' '.join(sorted(using)) if using!=set() else "None")
            
    


6530075721
# 1678895, 2022-11-12 09:40:59, PPPP (100%)

a,b,c = [int(e) for e in input().split()]
id = {} ; facul = {} ; visit = {}
for i in range(a) :
    name,fac = input().split()
    id[name] = fac
    if fac not in facul :
        facul[fac] = {name}
    else :
        facul[fac].add(name)
#print('id',id)
#print('-------------')
#print('facul',facul)
for i in range(b) :
    x = input().split()
    visit[x[0]] = set()
    for j in x[1:] :
        visit[x[0]].add(id[j])
#print('--------------')
#print('visit',visit)
for i in range(c) :
    x = input().split()
    s = visit[x[0]]
    for j in x[1:] :
        s &= visit[j]
    if len(s) > 0 :
        print(' '.join(sorted([e for e in s])))
    else :
        print('None')

6530076321
# 1681132, 2022-11-12 11:19:40, PPPP (100%)

n,m,k = input().split()

rfaculty = {}
gfaculty = {}


for i in range(int(n)):
    name,fac = input().split()
    
    rfaculty[name] = fac

for i in range(int(m)):
    x = [e for e in input().split()]
    gfaculty[x[0]] = []
    for b in x[1:]:
        gfaculty[x[0]].append(rfaculty[b])

for i in range(int(k)):
    place = []
    
    listg = [e for e in input().split()]
    for a in listg:
        place.append(set(gfaculty[a]))
    rplace=place[0]
    for b in range(1,len(place)):
        rplace = rplace.intersection(place[b])
    if list(rplace) == []:
        print("None")
    else:
        rplace = list(rplace)
        rplace.sort()
        print(" ".join(rplace))

6530077021
# 1679110, 2022-11-12 09:53:05, PPPP (100%)

a,b,c = [int(e)  for e in input().split()]
fac = {}
for i in range(a):
    n,m = input().strip().split()
    if m not in fac:
        fac[m] = set()
    fac[m].add(n)

k = {}
for i in range(b):
    x = input().split()
    k[x[0]] = set()
    for n in x[1:]:
        k[x[0]].add(n)

for i in range(c):
    ans = []
    x = input().strip().split()
    for n in x:
        ans.append(set())
        for m in k[n]:
            for j in fac:
                if m in fac[j]:
                    ans[-1].add(j)
    check = ans[0]
    for m in ans[1:]:
        check &= m
    if len(check) == 0:
        print('None')
    else:
        print(' '.join(sorted(list(check))))
        

6530078621
# 1679789, 2022-11-12 10:27:54, PPPP (100%)

def same(t,vns,nsf):
    a=set()
    for j in vns[t[0]]: a.add(nsf[j])
    for i in t[1:]:
        fac=set()
        for j in vns[i]:
            fac.add(nsf[j])
        a=a&fac
    if a==set(): return 'None'   
    else:
        a=sorted(list(a))
        return ' '.join(a)

a,b,c=[int(i) for i in input().strip().split()]
fac,vns,nsf={},{},{}
for i in range(a):
    p,f=input().strip().split()
    if f not in fac: fac[f]=set()
    fac[f].add(p)
    nsf[p]=f
for i in range(b):
    p=input().strip().split()
    t=p[0]
    vns[t]=set(p[1:])
for i in range(c):
    t=input().strip().split()
    print(same(t,vns,nsf))

6530079221
# 1679864, 2022-11-12 10:30:39, PPPP (100%)

nmk=input().split()
stu={}
for i in range(int(nmk[0])):
    inf=input().split()
    stu[inf[0]]=inf[1]


vis={}
for i in range(int(nmk[1])):
    inf=input().split()
    vis[inf[0]]=[stu[i] for i in inf[1:]]
    
result=[]
for i in range(int(nmk[2])):
    vf=input().split()
    m=vis[vf[0]]
    for i in range(1,len(vf)):
        k=set(m).intersection(set(vis[vf[i]]))
        m=k
    if k==set():
        result.append('None')
    else:
        k=list(k)
        k.sort()
        result.append(' '.join(k))
for i in result:
    print(i)

6530083721
# 1679159, 2022-11-12 09:55:38, PPPP (100%)

N,M,K = input().split()
name = {}
visit = {}
ans = []
for i in range(int(N)):
    n,f = input().split()
    name[n] = f
    
for i in range(int(M)):
    l = input().split()
    v = l[0]
    visit[v] = set()
    for k in l[1:]:
        visit[v].add(name[k])

for i in range(int(K)):
    l = input().split()
    d = set()
    for k in l:
        if k in visit:
            for f in visit[k]:
                d.add(f)
    for k in l:
        d = d & visit[k]
    if len(d) != 0:
        x = sorted([m for m in d])
        ans.append(x)
    else: ans.append(['None'])
for i in range(int(K)):
    print(' '.join(ans[i]))


6530085021
# 1679870, 2022-11-12 10:30:46, PPPP (100%)

x,y,z = input().split()
x,y,z = int(x),int(y),int(z)
dic = {}
di = {}
for i in range(x):
    k,v = input().split()
    di[k] = v
for i in range(y):
    l = input().split()
    for j in range(1,len(l)):
        if di[l[j]] in dic:
            dic[di[l[j]]].add(l[0])
        else:
            dic[di[l[j]]] = {l[0]}
lis = []
for i in range(z):
    l = input().split()
    l = set(l)
    li = list(dic.items())
    lis.append(set())
    for j in range(len(li)):
        if l.union(li[j][1]) == li[j][1]:
            lis[i].add(li[j][0])
    if lis[i] == set():
        lis[i].add("None")
for i in lis:
    print(" ".join(sorted(i)))

6530091721
# 1679638, 2022-11-12 10:21:42, PPPP (100%)

N,M,K=[int(e) for e in input().split()]
s={}
p={}
for i in range(N):
    name,fac=input().split()
    if fac in s:
        s[fac]+=[name]
    else:
        s[fac]=[name]
for i in range(M):
    n=input().split()
    p[n[0]]=n[1::]
for i in range(K):
    u=input().split()
    y={}
    for e in u:
        k=set()
        for l in p[e]:
            for key in s:
                if l in s[key]:
                    k.add(key)
        y[e]=k
    d=y[u[0]]
    for r in y:
        d=d.intersection(y[r])
    d=list(d)
    d.sort()
    if len(d)==0:
        print('None')
    else:
        d=' '.join(d)
        print(d)

6530103621
# 1679371, 2022-11-12 10:06:50, PPPP (100%)

n = input().split()
nisit = {}
for i in range(int(n[0])):
    name,fac = input().split()
    nisit[name] = fac

visitors = {}
for i in range(int(n[1])):
    a = input().split()
    visit = a[0]
    maha = a[1::]
    visitors[visit] = maha
    
f = []
for i in range(int(n[2])):
    f.append(input().split())
    
pai = {}
for e in f:
    for ee in e:
        pai[ee] = set()
        for nn in visitors[ee]:
            pai[ee].add(nisit[nn])


for e in f:
    s =set()
    ss = []
    for ee in e:
        s |= pai[ee]
    for ee in e:
        s &= pai[ee]
    for x in s:
        ss.append(x)
    if len(ss) == 0:
        print("None")
    else:
        print(" ".join(sorted(ss)))



6530112221
# 1678885, 2022-11-12 09:40:06, PPPP (100%)

n, m, k = input().split()
n = int(n)
m = int(m)
k = int(k)

students = {}
guests = {}

for i in range(n):
    name, fac = input().split()
    students[name] = fac
    
for i in range(m):
    inp = input().split()
    visitor = inp[0]
    visit_l = inp[1:]
    
    guests[visitor] = set()
    for student in visit_l:
        guests[visitor].add(students[student])
        
for i in range(k):
    inp = input().split()
    start = True
    for guest in inp:
        if start:
            same = guests[guest]
            start = False
            
        else:
            same = same&guests[guest]
            
    same = sorted(same)
    
    if same != []:
        print(' '.join(same))
        
    else:
        print('None')
        
    


6530113921
# 1679095, 2022-11-12 09:51:59, PPPP (100%)

n,m,k = [int(e) for e in input().split()]
ds = {}
for i in range(n):
    i = input().split()
    ds[i[0]] = i[1]
dv = {}
for i in range(m):
    i = input().split()
    dv[i[0]] = i[1:]
l = []
for i in range(k):
    i = input().split()
    l.append(i)
    
for i in range(len(l)):
    l[i] = [dv[e] for e in l[i]]
    for j in range(len(l[i])):
        l[i][j] = [ds[e] for e in l[i][j]]
        l[i][j] = set(l[i][j])
    s = set(l[i][0])
    for j in range(len(l[i])):
        s = s & set(l[i][j])
    s = list(s)
    s.sort()
    if len(s) == 0:
        print('None')
    else:
        print(' '.join(s))

6530114521
# 1680184, 2022-11-12 10:45:35, PPPP (100%)

N,M,K = [int(e) for e in input().split()]
fac = {}
for n in range(N) :
    stu,facu = input().split()
    fac[stu] = facu
yium = {}
for m in range(M) :
    visit = input().split()
    if visit[0] not in yium :
        yium[visit[0]] = visit[1:]
for k in range(K) :
    lists = [] 
    findd = input().split()
    for i in findd :
        supa = set()
        for j in yium[i] :
            supa.add(fac[j])
        lists.append(supa)
    set2 = lists[0]
    for l in lists :
        o = l.intersection(set2)
        set2 = o
    if set2 == set() :
        print('None')
    else :
        list2 = list(set2)
        list2.sort()
        print(' '.join(list2))

6530115121
# 1679289, 2022-11-12 10:02:18, PPPP (100%)

n=input().strip().split()
Aff={}
Paiha={}
for i in range(int(n[0])):
    Bandit=input().strip().split()
    Aff[Bandit[0]] = Bandit[1]
for i in range(int(n[1])):
    Guest=input().strip().split()
    Yakjer=set()
    for i in range(1,len(Guest)):
        if Guest[i] in Aff:
            Yakjer.add(Aff[Guest[i]])
    Paiha[Guest[0]] = Yakjer
for i in range(int(n[2])):
    Search=input().strip().split()
    check=Paiha[Search[0]]
    for i in range(1,len(Search)):
        if Search[i] in Paiha :
            check=check.intersection(Paiha[Search[i]])
        else:
            print("None")
            break
    if check == set():
        print("None")
    else:
        print(" ".join(sorted(check)))


6530116821
# 1680408, 2022-11-12 10:54:54, PPPP (100%)

stu={}
go={}
n,m,k=input().split()
for i in range(int(n)):
    nam,fac=input().split()
    stu[nam]=fac
for i in range(int(m)):
    x=input().split()
    per=x[0]
    kno=x[1::]
    go[per]={stu[kno[0]]}
    for j in kno[1::]:
        go[per].add(stu[j])
for i in range(int(k)):
    y=input().split()
    out=[]
    for i in range(len(y)):
        y[i]=go[y[i]]
    while len(y)>1:
        a=y[2::]
        a.append(y[0]&y[1])
        y=a
    if len(y[0])==0:
        print('None')
    else:   
        for i in y[0]:
            out.append(i)
        out.sort()
        outt=str(out[0])
        if len(out)==1:
            print(outt)
        if len(out)>1:
            for i in out[1::]:
                outt+=' '+i
            print(outt)

6530117421
# 1678883, 2022-11-12 09:39:44, PPPP (100%)

n,m,k = [int(e.strip()) for e in input().split()]
nisit = {}
guest = {}
for i in range(n):
    name,f = [e.strip() for e in input().split()]
    nisit[name] = f
for i in range(m):
    inp = input().split()
    temp = inp[0].strip()
    guest[temp] = set()
    for j in range(1,len(inp)):
        guest[temp].add(inp[j])
for i in range(k):
    check = {}
    out = []
    inp = input().split()
    for j in inp:
        for k in guest[j.strip()]:
            if nisit[k] not in check: check[nisit[k]] = set()
            check[nisit[k]].add(j)
    temp = len(inp)
    for j in check:
        if len(check[j]) == temp: out.append(j)
    if len(out) == 0: print("None")
    else:
        out.sort()
        print(" ".join(out))

6530118021
# 1679197, 2022-11-12 09:57:38, PPPP (100%)

n,m,k = input().split()
n,m,k = int(n),int(m),int(k)
fac = {}
for i in range(n):
    name,f = input().split()
    fac[name] = f
guest = {}
for i in range(m):
    a = input().split()
    g,stu = a[0],a[1:]
    fs = set([fac[e] for e in stu])
    guest[g] = fs
out = []
for i in range(k):
    gs = input().split()
    os = guest[gs[0]]
    for l in range(1,len(gs)):
        os &= guest[gs[l]]
    if len(os) == 0:
        out.append(['None'])
    else:
        out.append(sorted(os))
for e in out:
    print(' '.join(e))

6530126021
# 1678993, 2022-11-12 09:46:50, PPPP (100%)

n,m,k= input().split()
inf = {}
inf2 = {}
for i in range(int(n)):
    na,ka = input().split()
    inf[na] = ka
for i in range(int(m)):
    vis=input().split()
    inf2[vis[0]] = [vis[1]]
    for i in range(2,len(vis)):
        inf2[vis[0]].append(vis[i])
for i in range(int(k)):
    x = input().split()
    ans = []
    for n in range(len(x)):
        ans.append(set())
        for p in inf2[x[n]]:
            ans[n].add(inf[p])
    setans = ans[0]
    for i in range(1,len(ans)):
        setans =setans.intersection(ans[i])
    if len(setans) != 0 :
        setans = sorted(setans)
        print(' '.join(setans))
    else:
        print('None')
        
    




6530141421
# 1678906, 2022-11-12 09:41:41, PPPP (100%)

n1,n2,n3 = [int(e) for e in input().strip().split()]
sdic = {}; kdic = {}; ans = []
for i in range(n1):
    stu,fac = input().strip().split()
    if stu not in sdic: sdic[stu] = fac
for j in range(n2):
    x = input().strip().split()
    kak = x[0]
    for e in x[1:]:
        if kak not in kdic:
            kdic[kak] = {sdic[e]}
        else:
            kdic[kak].add(sdic[e])
for k in range(n3):
    y = input().strip().split()
    a = kdic[y[0]]
    for e in y[1:]:
        a&=kdic[e]
    ans.append(sorted(a))
for e in ans:
    if e == []:
        print("None")
    else:
        print(" ".join(e))

6530147221
# 1680278, 2022-11-12 10:50:26, PPPP (100%)

x, y, z = [int(i) for i in input().split()]
fac = {}
ges = {}
ans = set()
ans1 = set()
ans3 = []
c = 0
for i in range(x):
    x1, y1 = input().split()
    fac[x1] = y1
for i in range(y):
    o = input().split()
    ges[o[0]] = o[1:]
for i in range(z):
    p = input().split()
    
    for l in p:
        if c == 0:
            for k in ges[l]:
                if fac[k] not in ans:
                    ans.add(fac[k])
                
            c+=1
        else:
            
            for k1 in ges[l]:
                if fac[k1] not in ans1:
                    ans1.add(fac[k1])
            ans = ans&ans1
            ans1 = set()

    ans3.append(ans)
    ans = set()
    c = 0
for i in ans3:
    u1 = sorted(list(i))
    if u1 != []:
        for i1 in u1:
            print(i1)
    else:
        print("None")

6530149521
# 1678944, 2022-11-12 09:43:48, PPPP (100%)

n = input().strip()
n = [int(x) for x in n.split()]
kana = dict()
for i in range (n[0]) :
    k = input().split()
    if k[1] not in kana :
        kana[k[1]] = [k[0]]
    else :
        kana[k[1]].append(k[0])
kak = dict()

for i in range (n[1]) :
    k = input().split()
    
    for i in range (1,len(k)):
        for x in kana :
            if k[i] in kana[x] and k[0] not in kak :
                kak[k[0]] = {x,}
            elif k[i] in kana[x] and k[0] in kak :
                kak[k[0]].add(x)
ans = []
for i in range (n[2]) :
    k = input().split()
    a = kak[k[0]] 
    for x in k :
        a = a & kak[x]
    ans.append(sorted(list(a)))
for x in ans :
    if len(x) == 0 :
        print('None')
    else :
        print(' '.join(x))

6530160321
# 1680318, 2022-11-12 10:52:15, PPPP (100%)

n = input().split()
n1 = int(n[0])
n2 = int(n[1])
n3 = int(n[2])

d_name_bundit = {}
d_name_faculty = {}
for i in range(n1) :
    data = input().split()
    name_bundit = data[0]
    name_faculty = data[1]
    d_name_bundit[name_bundit] = name_faculty
    if name_faculty not in d_name_faculty :
        d_name_faculty[name_faculty] = [name_bundit]
    else :
        d_name_faculty[name_faculty].append(name_bundit)


d_name_p = {}
for i in range(n2) :
    data = input().split()
    name_p = data[0]
    d_name_p[name_p] = []
    for e in range(1,len(data)) :
        
        x = data[e]
        d_name_p[name_p].append(d_name_bundit[x])
        
answer = []
for i in range(n3) :
    d_check = {}
    data = input().split()
    for e in range(len(data)) :
        name_who_go = data[e]
        x = d_name_p[name_who_go]
        d_check[name_who_go] = set(x)
    
    l_check = []
    for e in d_check :
        l_check.append(set(d_check[e]))
        
    
    s_check = l_check[0]
    for i in range(1,len(l_check)) :
        s_check = s_check & (l_check[i])
    
    if s_check == set() :
        answer.append("None")
    else :
        ans = list(s_check)
        ans.sort()
        x = " ".join(ans)
        answer.append(x)

for i in answer :
    print(i)


6530162621
# 1679021, 2022-11-12 09:48:01, PPPP (100%)

# 2565_1_Quiz_3_2.py

n, m, k = [int(i) for i in input().split()]

bundits = {}
guests = {}

for i in range(n):
    name, fac = input().split()
    bundits[name] = fac

for i in range(m):
    ln = input().split()
    name = ln[0]
    fac = set(bundits[name] for name in ln[1:])
    guests[name] = fac

for i in range(k):
    g = input().split()
    s = guests[g[0]]
    for name in g:
        s &= guests[name]
    if len(s) == 0:
        print(None)
    else:
        print(*sorted(list(s)),sep=' ')


6530167821
# 1679324, 2022-11-12 10:04:12, PPPP (100%)

facultys={}
interested = {}
n, m, k = [int(e) for e in input().split()]
for i in range(n):
    name, faculty = input().split()
    facultys[name]=faculty
for i in range(m):
    a = input().split()
    #print(a)
    interested[a[0]]=a[-1:0:-1]
#print(interested)
#print(facultys)
for i in range(k):
    tmp =set()
    tmp2=set()
    names = input().split()
    for name in names:
        tmp2 =set()
        if names.index(name)==0:
            for e in interested[name]:
                if facultys[e] not in tmp:
                    tmp.add(facultys[e])
            tmp2=tmp
        else:
            for e in interested[name]:
                if facultys[e] not in tmp2:
                    tmp2.add(facultys[e])
        tmp = tmp.intersection(tmp2)
    if len(tmp) ==0:
        print('None')
    else:
        print(' '.join(sorted(tmp)))

6530168421
# 1679610, 2022-11-12 10:20:09, PPPP (100%)

n1, n2, n3 = [int(e) for e in input().split()]
name = {}
for i in range(n1):
    n, f = input().split()
    name[n] = f
kak = {}
for i in range(n2):
    x = input().split()
    for e in x[1:]:
        if x[0] not in kak:
            kak[x[0]] = {name[e]}
        else:
            kak[x[0]].add(name[e])
for i in range(n3):
    y = input().split()
    out = set()
    for e in y:
        out |= kak[e]
    for e in y:
        out &= kak[e]
    if len(out) == 0:
        print('None')
    else:
        print(' '.join(sorted(out)))

6530172921
# 1679875, 2022-11-12 10:30:57, PPPP (100%)

n,m,k = [int(e) for e in input().split()]
kana_dict = {}
yad_visit_who = {}
yad_ref_list = []
for i in range(n):
    nisit,fac = [e.strip() for e in input().split()]
    kana_dict[nisit] = fac
for y in range(m):
    yad_visit = input().split()
    yad = yad_visit[0]
    visit_who = set(yad_visit[1:])
    yad_visit_who[yad] = set([kana_dict[e] for e in visit_who])
for j in range(k):
    many_yad = input().split()
    yad_ref_list.append(many_yad)
for visitors in yad_ref_list:
    intersector_ref = yad_visit_who[visitors[0]]
    for v in visitors:
        intersector_ref = yad_visit_who[v] & intersector_ref
    if len(intersector_ref) == 0:
        print("None")
    else:
        print(" ".join(sorted(intersector_ref)))

6530173521
# 1680475, 2022-11-12 10:58:01, PPPP (100%)

n, m, k = [int(e) for e in input().split()]
keyFac = []
dataN = {}
dataN2F = {}
for i in range(n):
    name, fac = input().split()
    if fac not in dataN:
        dataN[fac] = [name]
        keyFac.append(fac)
    else:
        dataN[fac].append(name)
    dataN2F[name] = fac
keyGuest = []
dataG = {}
for i in range(m):
    x = input().split()
    keyGuest.append(x[0])
    newdata = set()
    for i in x[1:]:
        newdata.add(dataN2F[i])
    dataG[x[0]] = newdata

def check(p,data):
    out = data[p[0]]
    for i in p:
        cont = False
        j = p.index(i)
        for e in p[j+1:]:
            out = out.intersection(data[i].intersection(data[e]))
            if out == set():
                return cont
    cont = True
    return out
#True is found intersect, False is not found.
for i in range(k):
    y = input().split()
    out = []
    s = check(y,dataG)
    if s == False:
        print('None')
    else:
        print(' '.join(sorted(list(s))))
        
        
    

6530180921
# 1679922, 2022-11-12 10:32:34, PPPP (100%)

f,s,t = input().strip().split()
nfac = dict(); paiy = dict(); allfac = set()
for i in range(int(f)):
    n, fac = input().split()
    nfac[n] = fac
    allfac.add(fac)
for i in range(int(s)):
    x = input().split()
    kak, bun = x[0], x[1:]
    paiy[kak] = set()
    for k in nfac:
        for j in range(len(bun)):
            if bun[j] in k:
                paiy[kak].add(nfac[bun[j]])
for i in range(int(t)):
    pra = input().split()
    nun = paiy[pra[0]]
    for j in range(1,len(pra)):
        nun &= paiy[pra[j]]
    fin = sorted(nun)
    if len(fin)==0:
        print('None')
    else:
        print(' '.join(fin))

6530183821
# 1680178, 2022-11-12 10:45:20, PPPP (100%)

n=input().strip().split()
dname={}
for i in range(int(n[0])):
    x=input().strip().split()
    name,fac=x
    if name not in dname:
        dname[name]=fac

dkak={}
for i in range(int(n[1])):
    x=input().strip().split()
    if x[0] not in dkak:
        dkak[x[0]]={dname[e] for e in x[1::]}


for i in range(int(n[2])):
    x=input().strip().split()
    inter=dkak[x[0]]
    for e in x:
        inter=inter&dkak[e]
    if inter!=set():
        l=[]
        inter=sorted(inter)
        for e in inter:
            l.append(e)
        print(' '.join(l))
    else:
        print('None')
    

6530187321
# 1678889, 2022-11-12 09:40:26, PPPP (100%)

n,m,k = [int(e) for e in input().split()]
name_dict = {}
for i in range(n):
    name, faculty = input().split()
    if name in name_dict:
        name_dict[name].append(faculty)
    else:
        name_dict[name] = faculty
visitor = {}
for i in range(m): #if wrong check if x[0] in visitor
    x = input().split()
    set_ = set()
    for e in x[1:]:
        set_.add(name_dict[e])
    visitor[x[0]] = set_
for i in range(k):
    x = input().split()
    a = visitor[x[0]]
    for e in x[1:]:
        a = a & visitor[e]
    if a != set(): print(' '.join(sorted(a)))
    else: print('None')
    
        


6530188021
# 1679025, 2022-11-12 09:48:09, PPPP (100%)

N,M,K = input().split()
N1 = {}
N2 = {}
l = []
for i in range(int(N)):
    x = input().split()
    N1[x[0]] = x[1]
    if x[1] in N2:
        N2[x[1]] += [x[0]]
    else:
        N2[x[1]] = [x[0]]
    if x[1] not in l:
        l += [x[1]]
M1 = {}
for i in range(int(M)):
    x = input().split()
    if len(x) == 2:
        M1[x[0]] = {N1[x[1]]}
    else:
        M1[x[0]] = set()
        for k in range(1,len(x)):
            M1[x[0]].add(N1[x[k]])
for i in range(int(K)):
    wp = []
    s = 0
    sol = []
    x = input().split()
    for k in range(len(x)):
        wp +=  M1[x[k]]
    for k in l:
        if wp.count(k) == len(x):
            s += 1
            sol += [k]
        else:pass
    if s == 0:
        print('None')
    else:
        sol.sort()
        print(' '.join(sol))
        
    


6530192421
# 1679300, 2022-11-12 10:02:50, PPPP (100%)

a,b,c = input().split()
a = int(a)
b = int(b)
c = int(c)
f = {}
for i in range(a):
    kon,kana = input().split()
    if kana not in f:
        f[kana] = set()
    f[kana].add(kon)

f2 = {}
for i in range(b):
    h = input().split()
    kak = h[0]
    bun = set(h[1:])
    f2[kak] = bun

cc = []
ck = {}
for i in range(c):
    l = input().split()
    cc.append(l)
    for p in l:
        ck[p] = set()

for i in cc:
    for u in i:
        for t in f2[u]:
            for y in f:
                if t in f[y]:
                    ck[u].add(y)

for i in cc:
    k = set()
    for u in i:
        if k == set():
            k = ck[u]
        k = k&ck[u]
    k = list(k)
    k.sort()
    if k == []:
        print('None')
    else:
         print(' '.join(k))   

6530209521
# 1678851, 2022-11-12 09:38:03, PPPP (100%)

uni  = {}
i = [int(e) for e in input().split()]
for y in range(i[0]) :
    name,university = input().split()
    uni[name] = university
listn = {}
for z in range(i[1]) :
    s = input().split()
    listn[s[0]] = s[1:]
for zz in range(i[2]) :
    member = input().split()
    n = 0
    b = set()
    for ii in member :
        sets = set()
        for iii in listn[ii] :
            sets.add(uni[iii])
        if n == 0 :
            b = sets
            n = 1
        else :
            b = b&sets
    if b == set() :
        print('None')
    else : print(' '.join(sorted(b)))

6531301721
# 1679623, 2022-11-12 10:20:49, PPPP (100%)

n, m, k = [int(e) for e in input().split()]
N_n_F = {}
for i in range(n):
    inp = input().split()
    N_n_F.update({inp[0]:inp[1]})
G_n_F = {}
for i in range(m):
    inp2 = input().split()
    F = set()
    for j in range(len(inp2)-1):
        F.add(N_n_F[inp2[j+1]])
    G_n_F.update({inp2[0]:F})
Output2 = []
for i in range(k):
    inp3 = input().split()
    c = G_n_F[inp3[0]]
    for j in range(len(inp3)-1):
        c = c & G_n_F[inp3[j+1]]
    if c == set():
        Output2.append('None')
    else:
        d = list(c)
        for k2 in range(len(d)):
            for l in range(len(d)-1-k2):
                if d[k2] > d[k2+1+l]:
                    d[k2], d[k2+1+l] = d[k2+1+l], d[k2]
        Output = ''
        for m2 in range(len(d)):
            Output += d[m2] + ' '
        Output2.append(Output)
for i in range(k):
    print(Output2[i])


6531302321
# 1679619, 2022-11-12 10:20:35, PPPP (100%)

N,M,K = [int(e) for e in input().split()]
x ={}
y = {}
for  i in range(N):
    a,b = input().split()
    x[a] = b
    y[b] = a
z = {}
for i in range(M):
    a = set()
    a1= set(input().split())
    for e in a1:
        if e in x:
            a.add(e)
    b = a1-a
    for e in b:
        z[e] = set([x[e] for e in a])
for i in range(K):
    c = input().split()
    s = set(z[c[0]])
    for e in c:
        s &= z[e]
    if len(s) != 0:
        print(" ".join(sorted(s)))
    else:
        print("None")


    






6531304621
# 1678974, 2022-11-12 09:45:44, PPPP (100%)

n1, n2, n3 = [int(e) for e in input().split()]
d1 = {}
d2 = {}
loutput = []

for i in range(n1):
    name, faculity = input().split()
    d1[name] = {faculity, }

for i in range(n2):
    inp = input().split()
    parent = inp[0]
    s = d1[inp[1]]
    for name in inp[2:]:
        s = s | d1[name]
    d2[parent] = s

for i in range(n3):
    inp = input().split()
    output = d2[inp[0]]
    for name in inp[1:]:
        output = output & d2[name]
    loutput.append(output)

for output in loutput:
    if len(output) == 0:
        print('None')
    else:
        print(' '.join(sorted(output)))

6531305221
# 1678973, 2022-11-12 09:45:27, PPPP (100%)

n, m, k = [int(i) for i in input().split()]
stu = {}
visitdic = {}
result = []
for i in range(n):
    grad = input().split()
    stu.update({grad[0]: grad[1]})

for i in range(m):
    visit = input().split()
    visitdic.update({visit[0]: set()})
    for i in visit[1:]:
        visitdic[visit[0]].add(stu[i])

for i in range(k):
    a = input().split()
    b = visitdic[a[0]]
    c = []
    for j in range(len(a)):
        b = b.intersection(visitdic[a[j]])
    if b == set():
        result.append('None')
    else:
        for i in b:
            c.append(i)
        c.sort()
        result.append(' '.join(c))

for i in result:
    print(i)


6531306921
# 1678846, 2022-11-12 09:37:33, PPPP (100%)

x=input().split()
a,b,c=[int(i) for i in x]
faculty={}
ll={}
lll=[]
for i in range(a):
    name,fa=input().split()
    faculty[name]=fa
for i in range(b):
    x=input().split()
    name=x[0]
    x=x[1::]
    x=[faculty[i] for i in x]
    ll[name]=set(x)
for i in range(c):
    x=input().split()
    z=ll[x[0]]
    for i in range(1,len(x)):
        z=z.intersection(ll[x[i]])
    for i in z:
        lll.append(i)
        lll.sort()
    if lll==[]:
        print("None")    
    else:
        print(" ".join(lll))
        lll=[]

6531308121
# 1679207, 2022-11-12 09:58:09, PPPP (100%)

n,m,k = [int(e) for e in input().split()]
all = {}
guest = {}
all_fac = set()
for i in range(n) :
    stu,fac = input().split()
    all[stu] = fac
    all_fac.add(fac)
for i in range(m) :
    x = input().split()
    guest[x[0]] = x[1:]
for i in range(k) :
    x = input().split()
    ans = all_fac
    for j in x :
        f = set()
        for k in guest[j] :
            f.add(all[k])
        ans = ans.intersection(f)
    if len(ans) != 0 :
        print(' '.join(sorted(ans)))
    else :
        print(None)   

6531309821
# 1679066, 2022-11-12 09:50:20, PPPP (100%)

N, M, K = [int(e) for e in input().split()]

student_faculty = {}
for i in range(N):
    student, faculty = input().split()
    student_faculty[student] = faculty

visitor_student = {}
for i in range(M):
    s = input().split()
    visitor = s[0]
    students = s[1:]
    visitor_student[visitor] = students

all_visiting = []
for i in range(K):
    visitors = input().split()
    temp = []
    for visitor in visitors:
        student = visitor_student[visitor]
        visiting_faculty = set([student_faculty[e] for e in student])
        temp.append(visiting_faculty)
    all_visiting.append(temp)


for visiting in all_visiting:
    sect = visiting[0]
    for faculties in visiting:
        sect = sect & faculties
    if len(sect) == 0:
        print("None")
    else:
        print(" ".join(sorted(sect)))

6531310321
# 1679422, 2022-11-12 10:10:07, PPPP (100%)

x=input().split()
x=[int(i) for i in x]
faculty={}
guest={}
guestF={}
chck={}
for i in range(x[0]):
    y=input().split()
    if y[1] not in faculty:
        faculty[y[1]]=[y[0]]
    else:
        faculty[y[1]].append(y[0])
    chck[y[0]]=y[1]
for i in range(x[1]):
    y=input().split()
    guest[y[0]]=[i for i in y[1:]]
for i in guest:
    guestF[i]=[]
    for j in guest[i]:
        guestF[i].append(chck[j])
ret=[]
for i in range(x[2]):
    z=input().split()
    base=set(guestF[z[0]])
    for j in z[1:]:
        base=base&set(guestF[j])
    ret.append(base)
for i in ret:
    if len(i)==0:
        print('None')
    else:
        i2=list(i)
        i2.sort()
        op=''
        for j in i2:
            op+=j+' '
        print(op[:-1])

6531312621
# 1679279, 2022-11-12 10:02:01, PPPP (100%)

a,b,c = [int(e) for e in input().strip().split()]
name_faculty = {}
for i in range(a):
    s = input().strip().split()
    name_faculty[s[0]] = s[1]

photo_name = {}
photo_faculty = {}
photo = []
for i in range(b):
    s = input().strip().split()
    for e in s:
        if e != s[0]:
            if s[0] not in photo_name:
                photo_name[s[0]] = [e]
                photo_faculty[s[0]] = [name_faculty[e]]
                photo.append(s[0])
            else:
                photo_name[s[0]].append(e)
                photo_faculty[s[0]].append(name_faculty[e])
#print(photo_name)
#print(name_faculty)
#print(photo_faculty)
#print(photo)

faculty_go = []
for e in photo:
    faculty_go.append(photo_faculty[e])
#print(faculty_go)

answer = []
for i in range(c):
    last_faculty = []
    s = input().strip().split()
    for e in s:
        last_faculty.append(set(photo_faculty[e]))
    ans = last_faculty[0]
    for i in range(len(last_faculty)-1):
        ans = ans.intersection(last_faculty[i+1])
    answer.append(ans)
#print(answer)

for e in answer:
    if len(e) == 0:
        print('None')
    else:
        k = list(e)
        k.sort()
        print(' '.join(k))

6531313221
# 1678636, 2022-11-12 09:27:00, PPPP (100%)

n, m, k = [int(x) for x in input().split()]
facultyOf = {}
childrenOf = {}
for i in range(n):
    name, faculty = input().split()
    facultyOf[name] = faculty
for i in range(m):
    inputs = input().split()
    parent, children = inputs[0], inputs[1:]
    childrenOf[parent] = children
for i in range(k):
    first = True
    for par in input().split():
        set_par = set()
        for child in childrenOf[par]:
            set_par.add(facultyOf[child])
        if not first:
            intersect = intersect.intersection(set_par)
        else:
            intersect = set_par
            first = False
    intersect = list(intersect.intersection(set_par))
    if len(intersect):
        for faculty in sorted(intersect):
            print(faculty, end=" ")
    else:
        print("None")


6531314921
# 1679250, 2022-11-12 10:00:59, PPPP (100%)

a, aa, aaa = input().split()
b = []
c = []
d = set()
for i in range(int(a)):
    e = input().split()
    b.append([e[0], e[1]])
for i in range(int(aa)):
    f = input().split()
    g = set()
    for j in f[1:]:
        for k in b:
            if j == k[0]:
                g.add(k[1])
    c.append([f[0], g])

for i in range(int(aaa)):
    h = input().split()
    l = []

    for j in h:

        for k in c:

            if j == k[0]:
                l.append(k[1])

    m = l[0]
    for n in l[1:]:
        m = m.intersection(n)
    if len(m) != 0:
        o = []
        p = ''
        for i in m:
            o.append(i)
        o.sort()
        p = o[0]
        for i in o[1:]:
            p = p+' '+i
        print(p)
    else:
        print('None')


6531315521
# 1679477, 2022-11-12 10:12:44, PPPP (100%)

n,m,k = [int(e) for e in input().split()]

dn = {} # {faculty : [name , ...] , ...}
for i in range(n):
    name,faculty = [e.strip() for e in input().split()]
    dn[name] = faculty

dm = {} # {'Eren': {'faculty_a', 'faculty_a', 'faculty_c'}, ...
for i in range(m):
    x = [e.strip() for e in input().split()]
    name = x[0] ; stud = [dn[e] for e in x[1:]]
    dm[name] = set(stud)


for i in range(k):
    x = [e.strip() for e in input().split()]
    ak = dm[x[0]]
    for e in x:
        ak = ak.intersection(dm[e])
    if len(ak) == 0:
        print('None')
        break
    for e in sorted(ak):
        print(e)

6531316121
# 1678951, 2022-11-12 09:44:04, PPPP (100%)

n,m,k = [int(e) for e in input().split()]
dbundit = {}
for i in range(n):
     n,f = input().split()
     dbundit[n] = f

drelat = {}
for j in range(m):
     l = input().split()
     drelat[l[0]] = set()
     for b in range(len(l)-1):
          drelat[l[0]].add(dbundit[l[b+1]])

for a in range(k):
     l = input().split()
     s = drelat[l[0]]
     for e in l:
          s = s & drelat[e]
     if s == set():
          print("None")
     else:
          l = list(s)
          l.sort()
          print(" ".join(l))

6531317821
# 1679382, 2022-11-12 10:07:37, PPPP (100%)

faculty,guest,want,answer = {},{},[],[]
N,M,K = [int(e) for e in input().split()]
for n in range(N):
    name,fac = input().split()
    if fac not in faculty:
        faculty[fac] = [name]
    else:
        faculty[fac].append(name)
for n in range(M):
    x = input().split()
    name = x[0]
    congrats = " ".join(x[1:])
    if name not in guest:
        guest[name] = congrats + " "
    else:
        guest[name] += congrats
for e in guest:
    guest[e] = guest[e].strip().split()
for n in range(K):
    want.append(input().strip().split())
for groups in want:
    ans = [set() for i in range(len(groups))]
    for i in range(len(groups)):
        for to_visit in guest[groups[i]]:
            for fac,li_of_namae in faculty.items():
                if to_visit in li_of_namae:
                    ans[i].add(fac)
    tot = ans[0]
    for i in range(len(ans)):
        tot = tot & ans[i]
    answer.append(tot)
for e in answer:
    if len(e) == 0:
        print("None")
    else:
        print(" ".join(sorted(list(e))))

6531320621
# 1679220, 2022-11-12 09:59:02, PPPP (100%)

n,m,k = input().split()
n = int(n)
m = int(m)
k = int(k)
bd_fac = dict()
for i in range(n):
    bd,fac = input().split()
    bd_fac[bd] = fac
vst_bd = dict()
for i in range(m):
    x = input().split()
    vst_bd[x[0]] = x[1:]
for i in range(k):
    anss = list()
    x = input().split()
    for vst in x:
        ans = set()
        bds = vst_bd[vst]
        for bd in bds:
            # print(bd_fac[bd])
            ans.add(bd_fac[bd])
        anss.append(ans)
    # print(anss)
    for i in range(len(anss)-1):
        anss[i+1].intersection_update(anss[i])
    if anss[-1] == set():
        print('None')
    else:
        a = list(anss[-1])
        a.sort()
        print(' '.join(a))

6531321221
# 1678901, 2022-11-12 09:41:16, PPPP (100%)

n,m,k = [int(i) for i in input().split()]
fac1 = {}
fac2 = {}
for i in range(n):
    name ,f = input().split()
    fac1[name] = f

for i in range(m):
    a = input().split()
    aa = a[0]
    for p in a[1:]:
        if a[0] not in fac2:
            fac2[a[0]] = {fac1[p]}
        else:
            fac2[a[0]].add(fac1[p])

for i in range(k):
    p = input().split()
    for j in range(len(p)-1):
        if j == 0:
            a = fac2[p[0]].intersection(fac2[p[1]])
        else:
            a = a.intersection(fac2[p[j+1]])
    if a == set():
        print('None')
    else:
        print(' '.join(sorted(a)))
    # print(a)

    
    

# print(fac1 ,fac2 , sep='\n')

6531322921
# 1678855, 2022-11-12 09:38:14, PPPP (100%)

n,m,k = [int(e) for e in input().split()]
grad = {}
for a in range(n):
    p = input().split()
    grad[p[0]] = p[1]
guest = {}
for b in range(m):
    q = input().split()
    guest[q[0]] = tuple(q[1:])
for c in range(k):
    r = input().split()
    x = set([grad[w] for w in guest[r[0]]])
    for t in r[1:]:
        y = set([grad[z] for z in guest[t]])
        x = x & y
    if len(x) == 0:
        print(None)
    else:
        print(" ".join(sorted(x)))

6531323521
# 1679223, 2022-11-12 09:59:08, PPPP (100%)

a = [int(e) for e in input().split()]
facul = {}
for i in range(a[0]):
    n = input().split()
    if n[1] not in facul:
        facul[n[1]] = [n[0]]
    else :
        facul[n[1]].append(n[0])
friend = {}
for i in range(a[1]):
    n = input().split()
    friend[n[0]] = [n[i] for i in range(1,len(n))]
mutual = []
for i in range(a[2]):
    mutual.append([e for e in input().split()])

for k in mutual :
    samefac = []
    same = set()
    for i in k :
        x = set()
        for j in friend[i] :
            for k in facul :
                if j in facul[k]:
                    x.add(k)
                    break
        samefac.append(x)
    same = samefac[0]
    for i in samefac[1:] :
        same = same & i 
    if len(same) == 0 :print("None")
    else :
        x = []
        for i in same :
            x.append(i)
        x.sort()
        print(" ".join(x))











6531324121
# 1678810, 2022-11-12 09:36:07, PPPP (100%)

univers = set()
grads2facutlty = {}
visitors2faculty = {}

n1, n2, n3 = [int(e) for e in input().split()]

for _ in range(n1):
    grad, facult = input().split()
    grads2facutlty[grad] = facult
    univers.add(facult)

for _ in range(n2):
    s = input().split()
    visitor, grads = s[0], s[1:]
    a = set()
    
    for g in grads:
        hisfac = grads2facutlty[g]
        a.add(hisfac)

    visitors2faculty[visitor] = a

answers = []

for _ in range(n3):
    visitors = input().split()
    ans = univers.copy()
    for peep in visitors:
        to_go = visitors2faculty[peep]
        ans = ans.intersection(to_go)

    answers.append(ans)

for ans in answers:
    if ans == set(): print("None"); continue
    print(" ".join(sorted(ans)))

6531329321
# 1678835, 2022-11-12 09:37:12, PPPP (100%)

faculties = {}
guests = {}
N,M,K = [int(e) for e in input().split()]
for i in range(N):
    n,f = input().split()
    faculties[n] = f
for j in range(M):
    t = input().split()
    guests[t[0]]=set()
    for friend in t[1:]:
        guests[t[0]].add(faculties[friend])
for k in range(K):
    bozos = input().split()
    ans = set(guests[bozos[0]])
    for bozo in bozos:
        ans = ans & guests[bozo]
    if ans == set():
        print('None')
    else:
        print(' '.join(sorted(ans)))

6531331521
# 1679228, 2022-11-12 09:59:27, PPPP (100%)

n,m,k = [int(e) for e in input().split()]

find_stu_fac = {}
for i in range(n):
    student, faculty = input().split()
    find_stu_fac[student] = faculty

find_gst_fac = {}
for j in range(m):
    x = input().split()
    guest, student = x[0],x[1:]
    faculty_result = set()
    for e in student:
        faculty_result = faculty_result | {find_stu_fac[e]}
    find_gst_fac[guest] = faculty_result
    
for k in range(k):
    g = input().split()
    faculty_intersect = find_gst_fac[g[0]]
    for e in g:
        faculty_intersect = faculty_intersect & find_gst_fac[e]
    ans = sorted(faculty_intersect)
    if len(ans) > 0:
        print(' '.join(ans))
    else:
        print('None')

6531332121
# 1679008, 2022-11-12 09:47:35, PPPP (100%)

n, m, k = [int(e) for e in input().split()]
graduates_dict = dict()
for i in range(n):
    graduate, faculty = input().split()
    graduates_dict[graduate] = faculty
# print(graduates_dict)
guests_dict = dict()
for i in range(m):
    s_input = input().split()
    guest = s_input[0]
    graduates = s_input[1:]
    guests_dict[guest] = set()
    for graduate in graduates:
        guests_dict[guest].add(graduates_dict[graduate])
    # print(guests_dict)

for i in range(k):
    guests = input().split()
    faculties = []
    for guest in guests:
        faculties.append(guests_dict[guest])
    temp = set.intersection(*faculties)
    # print(temp, len(temp))
    out = []
    for faculty in temp:
        out.append(faculty)
    out.sort()
    if len(out) != 0:
        print(' '.join(out))
    else:
        print('None')


6531335021
# 1679238, 2022-11-12 10:00:12, PPPP (100%)

N,M,K = input().split()
Dbandit = {}
for i in range(int(N)) :
    bandit,faculty = input().split()
    Dbandit[bandit] = faculty
Dguess = {}
for i in range(int(M)) :
    inp = input().split()
    guess = inp[0]
    bandit = inp[1:]
    for t in bandit :
        if guess not in Dguess :
            Dguess[guess] = {Dbandit[t]}
        else :
            Dguess[guess].add(Dbandit[t])
for i in range(int(K)) :
    inp = input().split()
    temp = set(Dguess[inp[0]])
    for i in range(1,len(inp)) :
        temp = temp.intersection(Dguess[inp[i]])
    if temp == set() :
        print("None")
    else :
        print(" ".join(sorted(list(temp))))
        





6531337321
# 1678831, 2022-11-12 09:36:59, PPPP (100%)

n, m, k = map(int, input().split())

faculties = {}
for _ in range(n):
    name, fac = input().split()
    faculties[name] = fac

visitors = {}
for _ in range(m):
    vis = input().split()
    visitors[vis[0]] = vis[1:]

for _ in range(k):
    des = []
    des_set = set()
    targ = input().split()
    L = len(targ)

    for a in targ:
        will_visit = visitors[a]
        curr = set()
        for b in will_visit:
            curr.add(faculties[b])
        des.extend(curr)
        des_set = des_set.union(curr)

    ans = []
    for a in sorted(des_set):
        if des.count(a) == L:
            ans.append(a)
    if ans:
        print(' '.join(ans))
    else:
        print(None)



6531339621
# 1678666, 2022-11-12 09:28:36, PPPP (100%)

n, m, k = [int(i) for i in input().split()]

bandits = {}  # key: bandit, value: department
for i in range(n):
    inStr = input().split()
    bandits[inStr[0]] = inStr[1]

guests = {}  # key: guest, value: banditList
for i in range(m):
    inStr = input().split()
    guests[inStr[0]] = inStr[1:]

for i in range(k):
    inStr = input().split()
    checkList = []
    for guest in inStr:
        banditList = guests[guest]
        depSet = set()
        for bandit in banditList:
            depSet.add(bandits[bandit])
        checkList.append(depSet)

    outSet = checkList[0]
    for i in checkList[1:]:
        outSet = outSet.intersection(i)

    outList = list(outSet)
    outList.sort()

    if(len(outList) == 0):
        print("None")
    else:
        print(' '.join(outList))


6531340121
# 1678985, 2022-11-12 09:46:29, PPPP (100%)

n,m,k = [int(e) for e in input().split()]
d = {}
d2 = {}
for i in range(n):
    name, fac = input().split()
    d[name] = fac
for i in range(m):
    a = [e for e in input().split()]
    s = set()
    for h in range(len(a)-1):
        b = {d[a[h+1]]}
        s = s.union(b)
    d2[a[0]] = list(s)
for i in range(k):
    l = [e for e in input().split()]
    s0 = set(d2[l[0]])
    for k in range(len(l)-1):
        c = set(d2[l[k+1]])
        s0 = s0.intersection(c)
    if s0 == set():
        print('None')
    else:
        l1 = list(s0)
        l1.sort()
        print(" ".join(l1))

6531342421
# 1679176, 2022-11-12 09:56:25, PPPP (100%)

a={}
b={}
s = input().split()
n=int(s[0])
m=int(s[1])
k=int(s[2])
for i in range(n):
    x = input().split()
    a[x[0]] = x[1]
for i in range(m):
    y = input().split()
    for i in range(1,len(y)):
        if y[0] not in b:
            b[y[0]] = [a[y[i]]]
        else:
            b[y[0]].append(a[y[i]])
    c={}
    zz=[]
    z=b[y[0]]
    z.sort()
    z.append('9999')
    for j in range(len(z)-1):
        if z[j+1] != z[j]:
            zz.append(z[j])
    b[y[0]] = zz
for i in range(k):
    r = input().split()
    aa = set(b[r[0]])
    bb = set(b[r[1]])
    bb = aa & bb
    for j in range(2,len(r)):
        bb = bb & set(b[r[j]])
    if len(bb) == 0:
        print('None')
    else:
        ans = list(bb)
        ans.sort()
        print(" ".join(ans))

6531343021
# 1678852, 2022-11-12 09:38:10, PPPP (100%)

n, m, k = [int(e) for e in input().split()] #key = แขก value = คณะ
grad2fac = dict()
guess2grad = dict()
for i in range(n):
    grad, fac = input().strip().split()
    grad2fac[grad] = fac
for j in range(m):
    s = input().strip().split()
    guess = s[0]
    grads = s[1:]
    for e in range(len(grads)):
        grads[e] = grad2fac[grads[e]]
    guess2grad[guess] = grads
for e in range(k):
    lol = list()
    guesses = input().strip().split()
    for guess in guesses:
        lol.append(set(guess2grad[guess]))
    inter = lol[0]
    for i in range(1, len(lol)):
        inter = inter.intersection(lol[i])
    final = sorted(inter)
    if len(final) == 0:
        print('None')
    else:
        print(str(final)[1:-1].replace(',','').replace("'",''))

6531344721
# 1679121, 2022-11-12 09:53:35, PPPP (100%)

n = input().split()
db = {}
for i in range(int(n[0])):
    b, f = input().split()
    db[b] = f
dv = {}
for i in range(int(n[1])):
    t = input().split()
    dv[t[0]] = t[1:]

for i in range(int(n[2])):
    dl = {}
    q = input().split()
    for e in q:
        dl[e] = set()
        for c in dv[e]:
            dl[e].add(db[c])
    a = dl[q[0]]
    for k in dl:
        a = a & dl[k]
    if a == set():
        print("None")
    else:
        print(" ".join(sorted(a)))

6531345321
# 1678724, 2022-11-12 09:31:11, PPPP (100%)

n , m ,k = [int(e) for e in input().split()]
bundit = dict()
relative = dict()
for i in range(n):  
    x = input().split()
    bundit[x[0]] = x[1]
for i in range(m) :
    x = input().split()
    relative[x[0]] = set()
    for i in range(1,len(x)) :
        relative[x[0]].add(bundit[x[i]])
    
for i in range(k) :
    temp = set()
    x = input().split()
    temp = relative[x[0]]
    for i in range(1,len(x)) :
        temp = temp & relative[x[i]]
    if len(temp) == 0 :
        print("None")
    else :
        ans = []
        for e in temp :
            ans.append(e)
        ans.sort()
        print(" ".join(ans))
#print(bundit)
#print(relative)

6531348221
# 1680300, 2022-11-12 10:51:28, PPPP (100%)

n, m, k = input().strip().split()
n = int(n)
m = int(m)
k = int(k)
name_fal = {}
fal_name = {}
count = {}
check = []
needed_set = {}

for i in range(n):
    data = input().strip().split()
    name, fal = data[:]
    if name not in name_fal:
        name_fal[name] = ""
    name_fal[name] = fal
    if fal not in fal_name:
        fal_name[fal] = []
    fal_name[fal] += [name]

for i in range(m):
    data1 = input().strip().split()
    guest, new = data1[0], data1[1:]
    count[guest] = {}
    for name in new:
        if name_fal[name] not in count[guest]:
            count[guest][name_fal[name]] = 0
        count[guest][name_fal[name]] += 1


for name in count.keys():
    b = {a for a in count[name].keys()}
    needed_set[name] = b

for i in range(k):
    data2 = input().strip().split()
    ans = needed_set[data2[0]]
    for j in range(len(data2)):
        ans = ans.intersection(needed_set[data2[j]])
    ans1 = sorted(ans)
    if ans == set():
        print("None")
    else:
        print(" ".join(ans1))

        
    

6532011921
# 1678618, 2022-11-12 09:25:55, PPPP (100%)

n, m, k = [int(x) for x in input().split()]
faculties = {}
visiting = {}
for _ in range(n):
    graduate, faculty = [x.strip() for x in input().split()]
    faculties[graduate] = faculty
for _ in range(m):
    s = [x.strip() for x in input().split()]
    visiting[s[0]] = set()
    for i in range(1, len(s)):
        visiting[s[0]].add(faculties[s[i]])
for _ in range(k):
    visitors = [x.strip() for x in input().split()]
    temp = visiting[visitors[0]]
    for i in range(1, len(visitors)):
        temp = temp & visiting[visitors[i]]
    if len(temp) > 0:
        print(' '.join(sorted(list(temp))))
    else:
        print('None')

6532026321
# 1678716, 2022-11-12 09:30:48, PPPP (100%)

n,m,k = [int(i) for i in input().split()]
d = {}
kak = {}
for i in range(n):
  c = input().split()
  d[c[0]] = c[1]
for i in range(m):
  c = input().split()
  kak[c[0]] = [d[c[1]]]
  for j in c[2:]:
    kak[c[0]].append(d[j])
for i in range(k):
  c = input().split()
  itc = set(kak[c[0]])
  for j in c[1:]:
    itc = itc.intersection(set(kak[j]))
  if len(itc) == 0:
    print("None")
  else:
    print(" ".join(sorted(itc)))

6532027021
# 1678677, 2022-11-12 09:28:56, PPPP (100%)

n, m, k = input().split()
n = int(n); m = int(m); k = int(k)

Faculty = {}
listFaculty = set()
for i in range(n) :
    name, faculty = input().split()

    Faculty[name] = faculty
    listFaculty.add(faculty)

wantToMeet = {}
for i in range(m) :
    members = input().split()

    wantToMeet[members[0]] = members[1:]

for i in range(k) :
    guests = input().split()

    ans = []
    for faculty in listFaculty :
        notOk = False
        for g in guests :
            Ok = False
            for k in wantToMeet[g] :
                for m in k.split() :
                    if m in Faculty and Faculty[m] == faculty :
                        Ok = True
                        break
                if Ok == True :
                    break
            if Ok == False :
                notOk = True
        if notOk == False :
            ans.append(faculty)

    if len(ans) == 0 :
        print('None')
    else :
        ans.sort()
        print(' '.join(ans))

6532035021
# 1678774, 2022-11-12 09:34:07, PPPP (100%)

d_student = dict()
d_guest = dict()

n, m, k = [int(e) for e in input().split()]

for i in range(n):
    name, faculty = input().split()
    d_student[name] = faculty

for i in range(m):
    line = input().split()
    guest, name = line[0], line[1:]
    if guest not in d_guest:
        d_guest[guest] = set([d_student[e] for e in name])

for i in range(k):
    line = input().split()
    try:
        sets = [d_guest[e] for e in line]
    except:
        print('None')
        continue
    ans = sets[0]
    for e in sets[1:]:
        ans = set.intersection(ans, e)
    if len(ans) == 0:
        print('None')
    else:
        print(*sorted(ans))

6532040021
# 1678947, 2022-11-12 09:43:52, PPPP (100%)

n, m, o = [ int(i) for i in input().split() ]

fac = {}
des = {}

for i in range(n):
    name, f = input().split()
    fac[name] = f
    
for i in range(m):
    s = input().split()
    name = s[0]
    lst = []
    for j in s[1:]:
        lst.append(fac[j])
    des[name] = set(lst)

mx = 0
for i in range(o):
    s = input().split()
    co = des[s[0]]
    for name in s[1:]:
        co = co.intersection(des[name])
    t = list(co)
    if len(t) == 0:
        print("None")
    else:
        print(" ".join(sorted(t)))

6532043021
# 1679010, 2022-11-12 09:47:37, PPPP (100%)

n,m,k = input().split()
n = int(n)
m = int(m)
k = int(k)
fac = {}
for i in range(n):
    name,facu = input().split()
    fac[name] = facu

kak = {}

for i in range(m):
    s = input().split()
    kak[s[0]] = set()
    for e in s[1::]:
        kak[s[0]].add(fac[e])

for i in range(k):
    s = input().split()
    ans = kak[s[0]]
    for j in range(1,len(s)):
        ans = ans&kak[s[j]]
    if(len(ans)==0):
        print('None')
        continue
    s = sorted(ans)
    for e in s:
        print(e,end=' ')
    print('')

6532054921
# 1678707, 2022-11-12 09:30:30, PPPP (100%)

n,m,k = list(map(int,input().split()))

student = {}
parent = {}

for i in range(n) :
    get_input = input().split()
    student[get_input[0]] = get_input[1]
for i in range(m) :
    get_input = input().split()
    parent[get_input[0]] = []
    for i in range(1,len(get_input)) :
        parent[get_input[0]].append(get_input[i])
for i in range(k) :
    get_input = input().split()
    h = []
    for i in get_input :
        h.append(set())
        for j in parent[i] :
            h[-1].update({student[j]})
    result = h[0]
    for i in range(1,len(h)) :
        result = result.intersection(h[i])
    final_result = []
    for i in result :
        final_result.append(i)
    final_result.sort()
    if(len(final_result) == 0) :
        print("None")
    else :
        print(" ".join(final_result))


6532082421
# 1678734, 2022-11-12 09:31:39, PPPP (100%)

n,m,k = [int(e) for e in input().split()]

grad = dict()
relate = dict()

for i in range(n):
    name,faculty = input().split()
    grad[name] = faculty
for i in range(m):
    cmd = input().split()
    name = cmd[0]
    relate[name] = set()
    for e in cmd[1:]:
        relate[name].add(grad[e])
for i in range(k):
    group = input().split()
    ans = relate[group[0]]
    for e in group[1:]:
        ans = ans.intersection(relate[e])
    if(len(ans)):
        for e in sorted(ans):
            print(e,end=' ')
        print('')
    else:
        print('None')

        

6532092721
# 1678919, 2022-11-12 09:42:22, PPPP (100%)

n,m,k = [int(e) for e in input().split()]
ban_fac = {}
for i in range(n) :
    inp = input().split()
    ban_fac[inp[0]] = inp[1]

kaek_fac = {}
for i in range(m) :
    inp = input().split()
    kaek = inp[0]
    if kaek not in kaek_fac :
        kaek_fac[kaek] = []
    for friend in inp[1:] :
        if ban_fac[friend] not in kaek_fac[kaek] :
            kaek_fac[kaek].append(ban_fac[friend])

for i in range(k) :
    inp = input().split()
    cur = kaek_fac[inp[0]]
    for p in inp[1:] :
        vis = kaek_fac[p]
        newcur = []
        for fac in vis :
            if fac in cur :
                newcur.append(fac)
        cur = newcur
    if len(cur) == 0 :
        print("None")
    else :
        print(" ".join(sorted(cur)))

6532100021
# 1678915, 2022-11-12 09:42:09, PPPP (100%)

stu = {}
result = []
allcus = {}
n, m, k = [int(e) for e in input().split()]
for i in range(n):
    name, fac = input().split()
    stu[name] = fac
for i in range(m):
    sonfac = []
    a = input().split()
    cus = a[0]
    son = a[1:]
    for i in son:
        sonfac.append(stu[i])
    if cus in allcus:
        allcus[cus] += sonfac
    else:
        allcus[cus] = sonfac
for i in range(k):
    name = input().split()
    f = set(allcus[name[0]])
    name = name[1:]
    for j in name:
        p = set(allcus[j])
        f = f.intersection(p)
    if len(f) != 0:
        f = sorted(f)
        result.append(" ".join(f))
    else:
        result.append("None")
for i in result:
    print(i)


6532118421
# 1678585, 2022-11-12 09:24:12, PPPP (100%)

n = list(map(int, input().strip().split()))
fac = dict()
name = dict()

for i in range(n[0]):
    x = input().strip().split()
    fac[x[0]] = x[1]

for i in range(n[1]):
    x = input().strip().split()
    if x[0] not in name:
        name[x[0]] = set()
    for i in range(1, len(x)):
        name[x[0]].add(fac[x[i]])

for i in range(n[2]):
    x = input().strip().split()
    o = name[x[0]]
    for v in x:
        o &= name[v]
    if len(o):
        res = list(o)
        res.sort()
        for u in res:
            print(u, sep=" ")
    else:
        print("None")


6532120621
# 1678685, 2022-11-12 09:29:31, PPPP (100%)

def intersect(a, b):
    res = set()
    if len(a) < len(b):
        for x in a:
            if x in b:
                res.add(x)
    else:
        for x in b:
            if x in a:
                res.add(x)

    return res

def intersect_all(*args):
    if len(args) == 0:
        return set()
    if len(args) == 1:
        return args[0]
    res = args[0]
    for x in args[1:]:
        res = intersect(res, x)
    return res

n2f = {}
g2f = {}

n, m, k = [int(x) for x in input().split()]

for _ in range(n):
    name, fac = input().split()
    n2f[name] = fac

for _ in range(m):
    guest, *name = input().split()
#     print(guest, name)
    g2f[guest] = {n2f[x] for x in name}

for _ in range(k):
    guests = input().split()
    visited_fac = intersect_all(*[g2f[guest] for guest in guests])
    if len(visited_fac) == 0:
        print("None")
        continue
    l = list(visited_fac)
    l.sort()
    print(" ".join(l))



6532123521
# 1678777, 2022-11-12 09:34:13, PPPP (100%)

n, m, k = [int(e) for e in input().split()]
dic = {}
all_facul = set()
for _ in range(n):
    bandit, faculty = input().strip().split()
    dic[bandit] = faculty
    all_facul.add(faculty)
dic2 = {}
for _ in range(m):
    inp = input().split()
    guest = inp[0]
    dic2[guest] = set([dic[x] for x in inp[1:]])
for _ in range(k):
    s = all_facul.copy()
    for x in input().split():
        s = s.intersection(dic2[x])
    print(' '.join([x for x in sorted(s)]) if len(s) > 0 else None)


6532124121
# 1678780, 2022-11-12 09:34:29, PPPP (100%)

n,m,k = input().split()
n = int(n)
m = int(m)
k = int(k)
#print(n,m,k)
nisit = {}
for i in range(n):
    x = input().split()
    if(x[0] not in nisit):
        nisit[x[0]] = x[1]
#print(nisit)
par = {}
for i in range(m):
    x = input().split()
    se = set()
    for j in range(1,len(x)):
        se.add(nisit[x[j]])
    par[x[0]] = se
#print(par)
for i in range(k):
    x = input().split()
    se = par[x[0]]
    for j in range(1,len(x)):
        se = se.intersection(par[x[j]])
    ans = sorted(se)
    if(len(ans)==0):
        print("None")
    else:
        print(" ".join(ans))



6532125821
# 1679027, 2022-11-12 09:48:10, PPPP (100%)

map = {}
list = {}

N,M,K = [int(e) for e in input().split()]

for i in range(N):
    name , faculty = input().split()
    map[name] = faculty

for i in range(M):
    ipt = input().split()
    tmp_set = set()
    for name in ipt[1:]:
        if name in map:
            tmp_set = tmp_set | set([map[name]])
    list[ipt[0]] = tmp_set

for i in range(K):
    ipt = input().split()
    ans_set = set()
    for guy in ipt:
        if guy in list:
            ans_set = list[guy]
            break
    for guy in ipt:
        if guy in list:
            ans_set = ans_set & list[guy]
    if(len(ans_set) == 0):
        print('None')
    else:
        ans = []
        for faculty in ans_set:
            ans.append(faculty)
        print(" ".join(sorted(ans)))





6532136721
# 1678721, 2022-11-12 09:31:01, PPPP (100%)

n,m,k = [int(_) for _ in input().split()]
f = dict()

for i in range(n):
    name, faculty = input().split()
    f[name] = faculty

d = dict()
for i in range(m):
    s = input().split()
    name, l = s[0], s[1:]
    d[name] = set()
    for i in l:
        d[name].add(f[i])

for i in range(k):
    l = input().split()
    s = d[l[0]]
    for i in l[1:]:
        s = s.intersection(d[i])
    if len(s) == 0:
        print("None")
    else:
        print(*sorted([i for i in s]))


6532148221
# 1678845, 2022-11-12 09:37:31, PPPP (100%)

N, M, K = [int(i) for i in input().split()]
NF = {}
SN =  {}

for k in range(0, N):
    Name, Faculty = input().split()
    NF[Name] = Faculty

for k in range(0, M):
    inp = input().split()
    AllName = set()
    Name = ""
    for i in range(0, len(inp)):
        if i == 0:
            Name = inp[i]
        else:
            AllName.add(NF[inp[i]])
    SN[Name] = AllName

for k in range(0, K):
    inp = input().split()
    AllFac = set()
    #Get All Fac
    for Name in inp:
        for Fac in SN[Name]:
            AllFac.add(Fac)
    #Check All Fac
    ans = []
    for Fac in AllFac:
        AllFound = True
        for Name in inp:
            if not Fac in SN[Name]:
                AllFound = False
        if AllFound:
            ans += [Fac]
    ans.sort()
    if len(ans) == 0:
        print(None)
        continue
    for e in ans:
        print(e, end =' ')
    print("")



6532155621
# 1678674, 2022-11-12 09:28:49, PPPP (100%)

n, m, k = list(map(int, input().strip().split()))

banditFac = {}
for i in range(n):
    raw = input().strip().split()
    banditFac[raw[0]] = raw[1]

guestFac = {}
for i in range(m):
    raw = input().strip().split()
    guestFac[raw[0]] = set([banditFac[x] for x in raw[1: ]])


# for key, val in guestFac.items():
#     print(f"{key}: {val}")

for i in range(k):
    raw = input().strip().split()
    commonFac = set(guestFac[raw[0]])
    for guest in raw[1: ]:
        commonFac = commonFac.intersection(guestFac[guest])
    
    if len(commonFac) == 0: print("None")
    else: print( " ".join(sorted(list(commonFac))))



6532157921
# 1678939, 2022-11-12 09:43:36, PPPP (100%)

n = [int(i) for i in input().split()]
f = {}
af = []
d = {}
for i in range(n[0]):
    a = input().split()
    f[a[0]] = a[1]
    if a[1] not in af:
        af.append(a[1])
af.sort()
for i in range(n[1]):
    a = input().split()
    d[a[0]]={}
    for j in range(1,len(a)):
        d[a[0]][f[a[j]]] = 1
# print(d)
for i in range(n[2]):
    a = input().split()
    chn = 1
    ans = []
    for j in af:
        ch = 1
        for k in a:
            if j not in d[k]:
                ch = 0
                break
        if ch:
            ans.append(j)
            chn = 0
    if chn==0: print(' '.join(ans))
    if chn: print('None')
    # print()

# 8 5 3
# Luffy faculty_a
# Nami faculty_a
# Sanji faculty_b
# Zoro faculty_c
# Robin faculty_c
# Chopper faculty_a
# Brook faculty_c
# Franky faculty_b
# Eren Nami Chopper Brook
# Anya Sanji Luffy
# Yaiba Franky
# Shinji Sanji Chopper
# Amuro Zoro Sanji Nami
# Eren Anya
# Anya Eren Yaiba
# Amuro Shinji


# 8 2 1
# Luffy faculty_a
# Nami faculty_a
# Sanji faculty_b
# Zoro faculty_c
# Robin faculty_c
# Chopper faculty_a
# Brook faculty_c
# Franky faculty_b
# Shinji Sanji Chopper
# Amuro Zoro Sanji Nami
# Amuro Shinji

6532187721
# 1678644, 2022-11-12 09:27:26, PPPP (100%)

n,m,q = input().split()
n = int(n); m =int(m); q=int(q)
D = {}
for i in range(n):
    a,b = input().split()
    D[a]=b
F = {}
for i in range(m):
    l = input().split()
    F[l[0]] = []
    for x in l[1:]:
        if D[x] not in F[l[0]]: F[l[0]].append(D[x])
for i in range(q):
    names = input().split()
    check = {}
    for name in names:
        for x in F[name]:
            if x not in check: check[x]=1
            else: check[x]+=1
    L = []
    for x in check:
        if check[x]==len(names): L.append(x)
    L.sort()
    if len(L)==0: print('None')
    else: print(' '.join(L))


6532201821
# 1679642, 2022-11-12 10:21:47, PPPP (100%)



d={}
d2={}
a= input().split()
n = int(a[0])
n2 = int(a[1])
n3 = int(a[2])

for i in range(n) :
    a = input().split()
    if a[1] not in d :d[a[1]]=[a[0]]
    else : d[a[1]].append(a[0])

for i in range(n2):
    a= input().split()
    name=a[0]
    a=a[1::]
    for x in a:
        for key in d:
            if x in d[key] : fal=key ; break
        if name in d2 :
            if fal not in d2[name] : d2[name].append(fal)
        else : d2[name]=[fal]
for j in d2 : d2[j]=sorted(d2[j])      
#print(d2)

for i in range(n3) :
    anw=[]
    s=''
    a= input().split()
    base=a[0]
    a=a[1::]
    
    for fal in d2[base] :
        tr=1
        for x in a:
            if fal not in d2[x] : tr=0 #;print(fal+'NOT IN')
        if tr==1 : anw.append(fal)#;print(fal +'IN')
    if len(anw)==0 : print('None');continue
    else : 
        for ss in anw : s+= ss+' '
    print(s)
   








6532203021
# 1678759, 2022-11-12 09:33:18, PPPP (100%)

line = input().split()
n = int(line[0])
m = int(line[1])
k = int(line[2])

nisit = {}
for i in range(n):
    line = input().split()
    name = line[0]
    faculty = line[1]
    nisit[name] = faculty

guest = {}
for i in range(m):
    line = input().split()
    name = line[0]
    guest[name] = []
    for j in range(1, len(line)):
        visit = line[j]
        guest[name].append(visit)

for i in range(k):
    line = input().split()
    threshold = len(line)
    # print(f"Threshold: {threshold}")
    data = {}
    for j in range(len(line)):
        kaak = line[j]
        # data[kaak] = []
        for visit in guest[kaak]:
            if nisit[visit] not in data:
                data[nisit[visit]] = set()
            data[nisit[visit]].add(kaak)
    flag = 0
    ans = []
    # print(data)
    for j in data:
        if len(data[j]) >= threshold:
            flag = 1
            ans.append(j)

    if flag == 1:
        ans.sort()
        print(" ".join(ans))
    else:
        print("None")


6531019821
# 1679209, 2022-11-12 09:58:31, PPPP (100%)

n1,n2,n3 = [int(e) for e in (input()).split()]
c = 1
d = dict()
while c<= n1:
    x = input().split()
    d[x[0]] = x[1]
    c+=1
c = 1
d2 = dict()
while c <= n2:
    y = input().split()
    if len(y) == 2:
        d2[y[0]] = [y[1]]
    else:
        d2[y[0]] = y[1:]
    c+=1
for key in d2.keys():
    nv = []
    for e in d2[key]:
        ne = d[e]
        nv.append(ne)
    d2[key] = set(nv)
output = []
c = 1
while c<=n3:
    z =input().split()
    out = set(d2[z[0]])
    for e in z:
        v = d2[e]
        out = out.intersection(v)
    if len(out) == 0:
        output.append('None')
    else:
        v = ''
        for e in sorted(out):
            v += e + ' '
        v = v.strip()
        output.append(v)
    c+=1
for e in output:
    print(e + '\n')

6531020321
# 1679748, 2022-11-12 10:25:47, PPPP (100%)

N,M,K = input().split()
nfac = dict()
for i in range(int(N)):
    n,fac = input().split()
    nfac[n] = fac 
gfac = dict()
for i in range(int(M)):
    s = input().split()
    g = s[0]
    n = s[1:]
    gfac[g] = set()
    for e in n:
        gfac[g].add(nfac[n[n.index(e)]])
for i in range(int(K)):
    s = input().split()
    x = set(gfac[s[0]])
    for e in s:
        x &= gfac[e]
    if len(x)==0:
        print(None)
    else:
        print(' '.join(sorted(x)))
    

        
    
    


6531107321
# 1680043, 2022-11-12 10:39:00, PPPP (100%)

p = {}
q = {}
r = []

lineinput = input()

nGrad, nVis, nGr = lineinput.split()
nGrad = int(nGrad)
nVis = int(nVis)
nGr = int(nGr)

for i in range(nGrad):
    
    lineinput2 = input()
    student, faculty = lineinput2.split()
    
    p[student] = faculty
    
for i in range(nVis):
    
    lineinput3 = input()
    s = lineinput3.split()
    
    q[s[0]] = s[1:]
    
    
for i in range(nGr):
    t = input().split()
    r.append(t)

for i in q:
    temp = []
    x = q[i]
    for k in x:
        temp.append(p[k])
    q[i] = temp

for i in r:
    set1 = set()
    for k in q[i[0]]:
        set1.add(k)
        
    for k in i:
        set2 = set()
        for w in q[k]:
            set2.add(w)
            
        set1 = set1 & set2
        
    if len(set1) == 0:
    
        print("None")
        pass
        
    elif len(set1) != 0:
        
        set1 = list(set1)
        set1.sort()

        print(" ".join(set1))

6531701021
# 1680599, 2022-11-12 11:03:00, PPPP (100%)

ip=input().split()
a=int(ip[0])
b=int(ip[1])
c=int(ip[2])
sf={}
rf={}
ff=[]
for i in range(a):
    x=input().split()
    sf[x[0]]=x[1]
for j in range(b):
    x=input().split()
    rf[x[0]]=x[1:]
for k in range(c):
    x=input().split()
    ff+=[x]
fbb=[]
for i in range(len(ff)):
    fff=[]
    fb=[]
    for j in range(len(ff[i])):
        pfb=set({})
        for k in range(len(rf[ff[i][j]])):
            pfb.add(sf[rf[ff[i][j]][k]])
        fb+=[pfb]
    fbb+=[fb]
ss=[]
for z in range(len(fbb)):
    s=fbb[z][0]
    for y in range(1,len(fbb[z])):
        s=s&fbb[z][y]
    s=list(s)
    s.sort()
    if len(s) == 0:
        print('None')
    else:
        for t in range(len(s)-1):
            print(s[t],end=' ')
        print(s[-1])

6531805721
# 1679078, 2022-11-12 09:51:23, PPPP (100%)

n = [int(i) for i in input().split()]
faculty = {}
for i in range(n[0]):
    s = input().split()
    faculty[s[0]] = s[1]

guest = {}
for i in range(n[1]):
    s = input().split()
    g = set([faculty[k] for k in s[1:]])
    guest[s[0]] = g

out = []
for i in range(n[2]):
    s = input().split()
    k = guest[s[0]].copy()
    for i in range(len(s)-1):
        guest[s[0]].intersection_update(guest[s[i+1]])
    out.append(guest[s[0]])
    guest[s[0]] = k
          
final = [sorted(i) for i in out]
for i in final:
    if len(i) == 0:
        print('None')
    else:
        print(' '.join(i))

6532186021
# 1678871, 2022-11-12 09:39:02, PPPP (100%)

n,m,k = [int(e) for e in input().split()]
stu_fac = {}
for i in range(n):
    student,factory = input().split()
    stu_fac[student] = factory
guest_stu = {}
for i in range(m):
    x = input().split()
    guest = x[0]
    student = set(x[1:])
    guest_stu[guest] = student
for i in range(k):
    x = input().split()
    guest0 = x[0]
    stu0 = guest_stu[guest0]
    fac = set()
    for student in stu0:
        fac.add(stu_fac[student])
    for guest in x:
        stu0 = guest_stu[guest]
        fac0 = set()
        for student in stu0:
            fac0.add(stu_fac[student])
        fac = fac0 & fac
    if fac != set():
        print(' '.join(sorted(fac)))
    else:
        print('None')
        
    
    
    
    
    

Max Score = 75


6231715621
# 1679700, 2022-11-12 10:23:37, P--- (25%)

n,m,k = [int(e) for e in input().split()]
grad2fac = {}
for i in range(n):
    grad,fac = input().split()
    grad2fac[grad] = fac

guest2fac = {}
for i in range(m):
    x = input().split()
    guest = x[0]
    grad_data = x[1:len(x)]
    for j in grad_data:
        if guest not in guest2fac:
            guest2fac[guest] = {grad2fac[j]}
        else :
            guest2fac[guest].add(grad2fac[j])

for i in range(k):
    out = {}
    result = []
    x = input().split()
    for i in range(0,len(x)-1):
        out = guest2fac[x[i]] & guest2fac[x[i+1]]
        #result = []
        for i in out:
            if i == set():
                result += 'None'
            else:
                result.append(i)
        result.sort()

for i in result:
    print(i)

# 1680117, 2022-11-12 10:42:17, PP-- (50%)

n,m,k = [int(e) for e in input().split()]
grad2fac = {}
for i in range(n):
    grad,fac = input().split()
    grad2fac[grad] = fac

guest2fac = {}
for i in range(m):
    x = input().split()
    guest = x[0]
    grad_data = x[1:len(x)]
    for j in grad_data:
        if guest not in guest2fac:
            guest2fac[guest] = {grad2fac[j]}
        else :
            guest2fac[guest].add(grad2fac[j])
result = []
for i in range(k):
    out = {}
    #result = []
    x = input().split()
    for i in range(0,len(x)-1):
        out = guest2fac[x[i]] & guest2fac[x[i+1]]
    
    if out == set():
        out.add("None")
    for i in out:
        if i == "None":
            result.append('None')
        else:
            result.append(i)


for i in result:
    print(i)

# 1680131, 2022-11-12 10:42:59, PP-- (50%)

n,m,k = [int(e) for e in input().split()]
grad2fac = {}
for i in range(n):
    grad,fac = input().split()
    grad2fac[grad] = fac

guest2fac = {}
for i in range(m):
    x = input().split()
    guest = x[0]
    grad_data = x[1:len(x)]
    for j in grad_data:
        if guest not in guest2fac:
            guest2fac[guest] = {grad2fac[j]}
        else :
            guest2fac[guest].add(grad2fac[j])
result = []
for i in range(k):
    out = {}
    #result = []
    x = input().split()
    for i in range(0,len(x)-1):
        out = guest2fac[x[i]] & guest2fac[x[i+1]]
    
    if out == set():
        out.add("None")
    for i in out:
        if i == "None":
            result.append(i)
        else:
            result.append(i)


for i in result:
    print(i)

# 1680135, 2022-11-12 10:43:12, PPP- (75%)

n,m,k = [int(e) for e in input().split()]
grad2fac = {}
for i in range(n):
    grad,fac = input().split()
    grad2fac[grad] = fac

guest2fac = {}
for i in range(m):
    x = input().split()
    guest = x[0]
    grad_data = x[1:len(x)]
    for j in grad_data:
        if guest not in guest2fac:
            guest2fac[guest] = {grad2fac[j]}
        else :
            guest2fac[guest].add(grad2fac[j])
result = []
for i in range(k):
    out = {}
    x = input().split()
    for i in range(0,len(x)-1):
        out = guest2fac[x[i]] & guest2fac[x[i+1]]
    
    if out == set():
        out.add("None")
    for i in out:
        if i == "None":
            result.append(i)
        else:
            result.append(i)


for i in result:
    print(i)
# 1680164, 2022-11-12 10:44:38, PP-- (50%)

n,m,k = [int(e) for e in input().split()]
grad2fac = {}
for i in range(n):
    grad,fac = input().split()
    grad2fac[grad] = fac

guest2fac = {}
for i in range(m):
    x = input().split()
    guest = x[0]
    grad_data = x[1:len(x)]
    for j in grad_data:
        if guest not in guest2fac:
            guest2fac[guest] = {grad2fac[j]}
        else :
            guest2fac[guest].add(grad2fac[j])
result = []
for i in range(k):
    out = {}
    x = input().split()
    for i in range(0,len(x)-1):
        out = guest2fac[x[i]] & guest2fac[x[i+1]]
    
    if out == set():
        out = {"None"}
    for i in out:
        if i == "None":
            result.append(i)
        else:
            result.append(i)


for i in result:
    print(i)

# 1680170, 2022-11-12 10:44:55, PP-- (50%)

n,m,k = [int(e) for e in input().split()]
grad2fac = {}
for i in range(n):
    grad,fac = input().split()
    grad2fac[grad] = fac

guest2fac = {}
for i in range(m):
    x = input().split()
    guest = x[0]
    grad_data = x[1:len(x)]
    for j in grad_data:
        if guest not in guest2fac:
            guest2fac[guest] = {grad2fac[j]}
        else :
            guest2fac[guest].add(grad2fac[j])
result = []
for i in range(k):
    out = {}
    x = input().split()
    for i in range(0,len(x)-1):
        out = guest2fac[x[i]] & guest2fac[x[i+1]]
    
    if out == set():
        out.add("None")
    for i in out:
        if i == "None":
            result.append(i)
        else:
            result.append(i)


for i in result:
    print(i)

# 1680177, 2022-11-12 10:45:18, PP-- (50%)

n,m,k = [int(e) for e in input().split()]
grad2fac = {}
for i in range(n):
    grad,fac = input().split()
    grad2fac[grad] = fac
guest2fac = {}
for i in range(m):
    x = input().split()
    guest = x[0]
    grad_data = x[1:len(x)]
    for j in grad_data:
        if guest not in guest2fac:
            guest2fac[guest] = {grad2fac[j]}
        else :
            guest2fac[guest].add(grad2fac[j])
result = []
for i in range(k):
    out = {}
    x = input().split()
    for i in range(0,len(x)-1):
        out = guest2fac[x[i]] & guest2fac[x[i+1]]
    if out == set():
        out.add("None")
    for i in out:
        if i == "None":
            result.append(i)
        else:
            result.append(i)
for i in result:
    print(i)
# 1680187, 2022-11-12 10:45:40, PP-- (50%)

n,m,k = [int(e) for e in input().split()]
grad2fac = {}
for i in range(n):
    grad,fac = input().split()
    grad2fac[grad] = fac

guest2fac = {}
for i in range(m):
    x = input().split()
    guest = x[0]
    grad_data = x[1:len(x)]
    for j in grad_data:
        if guest not in guest2fac:
            guest2fac[guest] = {grad2fac[j]}
        else :
            guest2fac[guest].add(grad2fac[j])
result = []
for i in range(k):
    out = {}
    #result = []
    x = input().split()
    for i in range(0,len(x)-1):
        out = guest2fac[x[i]] & guest2fac[x[i+1]]
    
    if out == set():
        out.add("None")
    for i in out:
        if i == "None":
            result.append(i)
        else:
            result.append(i)


for i in result:
    print(i)

# 1680194, 2022-11-12 10:45:51, PP-- (50%)

n,m,k = [int(e) for e in input().split()]
grad2fac = {}
for i in range(n):
    grad,fac = input().split()
    grad2fac[grad] = fac

guest2fac = {}
for i in range(m):
    x = input().split()
    guest = x[0]
    grad_data = x[1:len(x)]
    for j in grad_data:
        if guest not in guest2fac:
            guest2fac[guest] = {grad2fac[j]}
        else :
            guest2fac[guest].add(grad2fac[j])
result = []
for i in range(k):
    out = {}
    x = input().split()
    for i in range(0,len(x)-1):
        out = guest2fac[x[i]] & guest2fac[x[i+1]]
    
    if out == set():
        out.add("None")
    for i in out:
        if i == "None":
            result.append(i)
        else:
            result.append(i)


for i in result:
    print(i)
# 1680337, 2022-11-12 10:52:44, P--- (25%)

n,m,k = [int(e) for e in input().split()]
grad2fac = {}
for i in range(n):
    grad,fac = input().split()
    grad2fac[grad] = fac

guest2fac = {}
for i in range(m):
    x = input().split()
    guest = x[0]
    grad_data = x[1:len(x)]
    for j in grad_data:
        if guest not in guest2fac:
            guest2fac[guest] = {grad2fac[j]}
        else :
            guest2fac[guest].add(grad2fac[j])
result = []
for i in range(k):
    out = {}
    x = input().split()
    for i in range(0,len(x)-1):
        out = guest2fac[x[i]] & guest2fac[x[i+1]]
    
    if out == set():
        out.add("None")
    for i in out:
        if i == "None":
            result.append(i)
        else:
            result.append(i)

result.sort()
for i in result:
    print(i)

# 1680444, 2022-11-12 10:56:20, PPP- (75%)

n,m,k = [int(e) for e in input().split()]
grad2fac = {}
for i in range(n):
    grad,fac = input().split()
    grad2fac[grad] = fac

guest2fac = {}
for i in range(m):
    x = input().split()
    guest = x[0]
    grad_data = x[1:len(x)]
    for j in grad_data:
        if guest not in guest2fac:
            guest2fac[guest] = {grad2fac[j]}
        else :
            guest2fac[guest].add(grad2fac[j])
result = []
for i in range(k):
    out = {}
    x = input().split()
    for i in range(0,len(x)-1):
        out = guest2fac[x[i]] & guest2fac[x[i+1]]
    out = list(out)
    out.sort()
    if out == []:
        out.append("None")
    for i in out:
        if i == "None":
            result.append(i)
        else:
            result.append(i)

for i in result:
    print(i)

# 1681526, 2022-11-12 11:28:23, PPP- (75%)

n,m,k = [int(e) for e in input().split()]
grad2fac = {}
for i in range(n):
    grad,fac = input().split()
    grad2fac[grad] = fac

guest2fac = {}
for i in range(m):
    x = input().split()
    guest = x[0]
    grad_data = x[1:len(x)]
    for j in grad_data:
        if guest not in guest2fac:
            guest2fac[guest] = {grad2fac[j]}
        else :
            guest2fac[guest].add(grad2fac[j])
result = []
for i in range(k):
    out = {}
    x = input().split()
    for i in range(len(x)):
        for j in range(i+1,len(x)):
            out = guest2fac[x[i]] & guest2fac[x[j]]
    out = list(out)
    out.sort()
    if out == []:
        out.append("None")
    for i in out:
        if i == "None":
            result.append(i)
        else:
            result.append(i)

for i in result:
    print(i)

# 1681642, 2022-11-12 11:29:53, PPP- (75%)

n,m,k = [int(e) for e in input().split()]
grad2fac = {}
for i in range(n):
    grad,fac = input().split()
    grad2fac[grad] = fac
guest2fac = {}
for i in range(m):
    x = input().split()
    guest = x[0]
    grad_data = x[1:len(x)]
    for j in grad_data:
        if guest not in guest2fac:
            guest2fac[guest] = {grad2fac[j]}
        else :
            guest2fac[guest].add(grad2fac[j])
result = []
for i in range(k):
    out = {}
    x = input().split()
    for i in range(len(x)):
        for j in range(i+1,len(x)):
            out = guest2fac[x[i]] & guest2fac[x[j]]
    out = list(out)
    out.sort()
    if out == []:
        out.append("None")
    for i in out:
        if i == "None":
            result.append(i)
        else:
            result.append(i)

for i in result:
    print(i)

6530062521
# 1680904, 2022-11-12 11:13:31, PP-- (50%)

n,m,k = [int(e) for e in input().split()]
club = {}
for i in range(n) :
    st,f = input().split()
    club[st] = f
dx = {}
for i in range(m) :
    x = input().split()
    for e in x[1:] :
        if x[0] not in dx :
            dx[x[0]] = set()    
        dx[x[0]].add(club[e])
for i in range(k) :
    z = input().split()
    zs = set()
    for i in range(len(z)-1):
        for j in range(i+1,len(z)):
            zs = dx[z[i]] & dx[z[j]]
    if len(zs) > 0 :
        print(','.join(list(zs)))
    else : print("None")
# 1680945, 2022-11-12 11:15:07, PP-- (50%)

n,m,k = [int(e) for e in input().split()]
club = {}
for i in range(n) :
    st,f = input().split()
    club[st] = f
dx = {}
for i in range(m) :
    x = input().split()
    for e in x[1:] :
        if x[0] not in dx :
            dx[x[0]] = set()    
        dx[x[0]].add(club[e])
for i in range(k) :
    z = input().split()
    zs = set()
    for i in range(len(z)-1):
        for j in range(i+1,len(z)):
            zs = dx[z[i]] & dx[z[j]]
    if len(zs) > 0 :
        print(' '.join(list(zs)))
    else : print("None")
# 1680953, 2022-11-12 11:15:24, PPP- (75%)

n,m,k = [int(e) for e in input().split()]
club = {}
for i in range(n) :
    st,f = input().split()
    club[st] = f
dx = {}
for i in range(m) :
    x = input().split()
    for e in x[1:] :
        if x[0] not in dx :
            dx[x[0]] = set()    
        dx[x[0]].add(club[e])
for i in range(k) :
    z = input().split()
    for i in range(len(z)-1):
        for j in range(i+1,len(z)):
            zs = dx[z[i]] & dx[z[j]]
    if len(zs) > 0 :
        print(' '.join(list(zs)))
    else : print("None")
# 1680989, 2022-11-12 11:16:16, PP-- (50%)

n,m,k = [int(e) for e in input().split()]
club = {}
for i in range(n) :
    st,f = input().split()
    club[st] = f
dx = {}
for i in range(m) :
    x = input().split()
    for e in x[1:] :
        if x[0] not in dx :
            dx[x[0]] = set()    
        dx[x[0]].add(club[e])
for i in range(k) :
    z = input().split()
    zs = set()
    for i in range(len(z)-1):
        for j in range(i+1,len(z)):
            zs = dx[z[i]] & dx[z[j]]
    if len(zs) > 0 :
        print(' '.join(list(zs)))
    else : print("None")
# 1681009, 2022-11-12 11:16:42, PP-- (50%)

n,m,k = [int(e) for e in input().split()]
club = {}
for i in range(n) :
    st,f = input().split()
    club[st] = f
dx = {}
for i in range(m) :
    x = input().split()
    for e in x[1:] :
        if x[0] not in dx :
            dx[x[0]] = set()    
        dx[x[0]].add(club[e])
for i in range(k) :
    z = input().split()
    for i in range(len(z)-1):
        for j in range(i+1,len(z)):
            zs = dx[z[i]] & dx[z[j]]
    if len(zs) > 0 :
        print(' '.join(list(zs)))
    else : print("None")
# 1681030, 2022-11-12 11:17:03, PP-- (50%)

n,m,k = [int(e) for e in input().split()]
club = {}
for i in range(n) :
    st,f = input().split()
    club[st] = f
dx = {}
for i in range(m) :
    x = input().split()
    for e in x[1:] :
        if x[0] not in dx :
            dx[x[0]] = set()    
        dx[x[0]].add(club[e])
for i in range(k) :
    z = input().split()
    for i in range(len(z)-1):
        for j in range(i+1,len(z)):
            zs = dx[z[i]] & dx[z[j]]
    if len(zs) > 0 :
        print(' '.join(list(zs)))
    else : print("None")
# 1681042, 2022-11-12 11:17:23, PP-- (50%)

n,m,k = [int(e) for e in input().split()]
club = {}
for i in range(n) :
    st,f = input().split()
    club[st] = f
dx = {}
for i in range(m) :
    x = input().split()
    for e in x[1:] :
        if x[0] not in dx :
            dx[x[0]] = set()    
        dx[x[0]].add(club[e])
for i in range(k) :
    z = input().split()
    zs = set()
    for i in range(len(z)-1):
        for j in range(i+1,len(z)):
            zs = dx[z[i]] & dx[z[j]]
    if len(zs) > 0 :
        print(' '.join(list(zs)))
    else : print("None")
# 1681054, 2022-11-12 11:17:35, PP-- (50%)

n,m,k = [int(e) for e in input().split()]
club = {}
for i in range(n) :
    st,f = input().split()
    club[st] = f
dx = {}
for i in range(m) :
    x = input().split()
    for e in x[1:] :
        if x[0] not in dx :
            dx[x[0]] = set()    
        dx[x[0]].add(club[e])
for i in range(k) :
    z = input().split()
    
    for i in range(len(z)-1):
        for j in range(i+1,len(z)):
            zs = dx[z[i]] & dx[z[j]]
    if len(zs) > 0 :
        print(' '.join(list(zs)))
    else : print("None")

6531334421
# 1680954, 2022-11-12 11:15:25, PP-- (50%)

N,M,K = input().split()

#แยกนิสิต:คณะ
fal = {} #[stu:fal]
for i in range(int(N)):
    t = input().split()
    fal[t[0]] = t[1]

#แยกแขก:นิสิต
guest = {} #[gue:stu]
for i in range(int(M)):
    t = input().split()
    if t[0] not in guest: guest[t[0]] = []
    guest[t[0]].extend(t[1:])

for i in range(int(K)):
    t = input().split()
    count = {}
    for n in range(len(t)):
        for i in t:
            if i not in count.keys() :count[i] = []
            for j in guest[i]:
                count[i].append(fal[j])
    for n in count: count[n] = set(count[n])
    count_fin = {}
    inter_fal = []
    for a in count.keys():
        for b in count[a]:
            if b not in count_fin.keys(): count_fin[b] = 0
            count_fin[b]+=1
    for i in count_fin:
        if count_fin[i] == len(t):
            inter_fal.append(i)

    inter_fal.sort
    if len(inter_fal): 
        for i in inter_fal:
            print(i,end=' ')
    else: print('None')
# 1681120, 2022-11-12 11:19:27, xxxx (0%)

N,M,K = input().split()

#แยกนิสิต:คณะ
fal = {} #[stu:fal]
for i in range(int(N)):
    t = input().split()
    fal[t[0]] = t[1]

#แยกแขก:นิสิต
guest = {} #[gue:stu]
for i in range(int(M)):
    t = input().split()
    if t[0] not in guest: guest[t[0]] = []
    guest[t[0]].extend(t[1:])

for i in range(int(K)):
    t = input().split()
    count = {}
    for n in range(len(t)):
        for i in t:
            if i not in count.keys() :count[i] = []
            for j in guest[i]:
                count[i].append(fal[j])
    for n in count: count[n] = set(count[n])
    count_fin = {}
    inter_fal = []
    for a in count.keys():
        for b in count[a]:
            if b not in count_fin.keys(): count_fin[b] = 0
            count_fin[b]+=1
    for i in count_fin:
        if count_fin[i] == len(t):
            inter_fal.append(i)

    inter_fal.sort
    if len(inter_fal): 
      for i in len(inter_fal):
          if i != len(inter_fal)-1:
              print(i,end=' ')
          if i == len(inter_fal):
              print(i)
    else: print('None')
# 1681145, 2022-11-12 11:19:55, xxxx (0%)

N,M,K = input().split()

#แยกนิสิต:คณะ
fal = {} #[stu:fal]
for i in range(int(N)):
    t = input().split()
    fal[t[0]] = t[1]

#แยกแขก:นิสิต
guest = {} #[gue:stu]
for i in range(int(M)):
    t = input().split()
    if t[0] not in guest: guest[t[0]] = []
    guest[t[0]].extend(t[1:])

for i in range(int(K)):
    t = input().split()
    count = {}
    for n in range(len(t)):
        for i in t:
            if i not in count.keys() :count[i] = []
            for j in guest[i]:
                count[i].append(fal[j])
    for n in count: count[n] = set(count[n])
    count_fin = {}
    inter_fal = []
    for a in count.keys():
        for b in count[a]:
            if b not in count_fin.keys(): count_fin[b] = 0
            count_fin[b]+=1
    for i in count_fin:
        if count_fin[i] == len(t):
            inter_fal.append(i)

    inter_fal.sort
    if len(inter_fal): 
      for i in len(inter_fal):
        print(i,end=' ')

    else: print('None')
# 1681157, 2022-11-12 11:20:18, PP-P (75%)

N,M,K = input().split()

#แยกนิสิต:คณะ
fal = {} #[stu:fal]
for i in range(int(N)):
    t = input().split()
    fal[t[0]] = t[1]

#แยกแขก:นิสิต
guest = {} #[gue:stu]
for i in range(int(M)):
    t = input().split()
    if t[0] not in guest: guest[t[0]] = []
    guest[t[0]].extend(t[1:])

for i in range(int(K)):
    t = input().split()
    count = {}
    for n in range(len(t)):
        for i in t:
            if i not in count.keys() :count[i] = []
            for j in guest[i]:
                count[i].append(fal[j])
    for n in count: count[n] = set(count[n])
    count_fin = {}
    inter_fal = []
    for a in count.keys():
        for b in count[a]:
            if b not in count_fin.keys(): count_fin[b] = 0
            count_fin[b]+=1
    for i in count_fin:
        if count_fin[i] == len(t):
            inter_fal.append(i)

    inter_fal.sort
    if len(inter_fal): 
      for i in inter_fal:
        print(i,end=' ')

    else: print('None')
# 1681266, 2022-11-12 11:22:57, PP-- (50%)

N,M,K = input().split()

#แยกนิสิต:คณะ
fal = {} #[stu:fal]
for i in range(int(N)):
    t = input().split()
    fal[t[0]] = t[1]

#แยกแขก:นิสิต
guest = {} #[gue:stu]
for i in range(int(M)):
    t = input().split()
    if t[0] not in guest: guest[t[0]] = []
    guest[t[0]].extend(t[1:])

for i in range(int(K)):
    t = input().split()
    count = {}
    for n in range(len(t)):
        for i in t:
            if i not in count.keys() :count[i] = []
            for j in guest[i]:
                count[i].append(fal[j])
    for n in count: count[n] = set(count[n])
    count_fin = {}
    inter_fal = []
    for a in count.keys():
        for b in count[a]:
            if b not in count_fin.keys(): count_fin[b] = 0
            count_fin[b]+=1
    for i in count_fin:
        if count_fin[i] == len(t):
            inter_fal.append(i)

    inter_fal.sort
    if len(inter_fal)>0: 
      for i in inter_fal:
        print(i,end=' ')

    else: print('None')
# 1681275, 2022-11-12 11:23:14, PP-- (50%)

N,M,K = input().split()

#แยกนิสิต:คณะ
fal = {} #[stu:fal]
for i in range(int(N)):
    t = input().split()
    fal[t[0]] = t[1]

#แยกแขก:นิสิต
guest = {} #[gue:stu]
for i in range(int(M)):
    t = input().split()
    if t[0] not in guest: guest[t[0]] = []
    guest[t[0]].extend(t[1:])

for i in range(int(K)):
    t = input().split()
    count = {}
    for n in range(len(t)):
        for i in t:
            if i not in count.keys() :count[i] = []
            for j in guest[i]:
                count[i].append(fal[j])
    for n in count: count[n] = set(count[n])
    count_fin = {}
    inter_fal = []
    for a in count.keys():
        for b in count[a]:
            if b not in count_fin.keys(): count_fin[b] = 0
            count_fin[b]+=1
    for i in count_fin:
        if count_fin[i] == len(t):
            inter_fal.append(i)

    inter_fal.sort
    if len(inter_fal): 
      for i in inter_fal:
        print(i,end=' ')

    else: print('None')
# 1681307, 2022-11-12 11:24:00, PP-- (50%)

N,M,K = input().split()

#แยกนิสิต:คณะ
fal = {} #[stu:fal]
for i in range(int(N)):
    t = input().split()
    fal[t[0]] = t[1]

#แยกแขก:นิสิต
guest = {} #[gue:stu]
for i in range(int(M)):
    t = input().split()
    if t[0] not in guest: guest[t[0]] = []
    guest[t[0]].extend(t[1:])

for i in range(int(K)):
    t = input().split()
    count = {}
    for n in range(len(t)):
        for i in t:
            if i not in count.keys() :count[i] = []
            for j in guest[i]:
                count[i].append(fal[j])
    for n in count: count[n] = set(count[n])
    count_fin = {}
    inter_fal = []
    for a in count.keys():
        for b in count[a]:
            if b not in count_fin.keys(): count_fin[b] = 0
            count_fin[b]+=1
    for i in count_fin:
        if count_fin[i] == len(t):
            inter_fal.append(i)

    inter_fal.sort
    if len(inter_fal): 
      for i in inter_fal:
        print(i,end=' ')

    else: print('None')
# 1681433, 2022-11-12 11:26:25, PP-- (50%)

N,M,K = input().split()

#แยกนิสิต:คณะ
fal = {} #[stu:fal]
for i in range(int(N)):
    t = input().split()
    fal[t[0]] = t[1]

#แยกแขก:นิสิต
guest = {} #[gue:stu]
for i in range(int(M)):
    t = input().split()
    if t[0] not in guest: guest[t[0]] = []
    guest[t[0]].extend(t[1:])

for i in range(int(K)):
    t = input().split()
    count = {}
    for n in range(len(t)):
        for i in t:
            if i not in count.keys() :count[i] = []
            for j in guest[i]:
                count[i].append(fal[j])
    for n in count: count[n] = set(count[n])
    count_fin = {}
    inter_fal = []
    for a in count.keys():
        for b in count[a]:
            if b not in count_fin.keys(): count_fin[b] = 0
            count_fin[b]+=1
    for i in count_fin:
        if count_fin[i] == len(t):
            inter_fal.append(i)

    inter_fal.sort
    if len(inter_fal): 
      for i in inter_fal:
        print(i,end=' ')

    else: print('None')

6530154621
# 1679236, 2022-11-12 10:00:05, compilation error (0%)

x = input().split()

Fac = {}
# {'Luffy': {'faculty_a'}, 'Nami': {'faculty_a'}, 'Sanji': {'faculty_b'}, 'Zoro': {'faculty_c'}, 'Robin': {'faculty_c'},
# 'Chopper': {'faculty_a'}, 'Brook': {'faculty_c'}, 'Franky': {'faculty_b'}}
for i in range(int(x[0])):
    name, fac = input().split()
    if name not in Fac: Fac[name] = set()
    Fac[name].add( fac )
    
Guest = {}
# {'Eren': {'Nami', 'Chopper', 'Brook'}, 'Anya': {'Luffy', 'Sanji'}, 'Yaiba': {'Franky'}}
for i in range(int(x[1])):
    y = input().split()
    guest = y[0]
    l = y[1:]
    if guest not in Guest: Guest[guest] = set()
    for j in l:
        Guest[guest].add(j)

un = {}
In = {}
p = set()
# {'Eren': {'Brook', 'Nami', 'Chopper'}, 'Anya': {'Sanji', 'Luffy'}, 'Yaiba': {'Franky'}}
for i in range(int(x[2])):
    l = []
    g = input().split()
    for e in g:
        s = set()
        s |= Guest[e]
        un[e] = s
    for e in un:
        s = set()
        # e = guest
        for j in un[e]: # j = name
            s |= Fac[j]
        In[e] = s
    k = set()
    for e in In:
        if len(k) == 0: k = In[e]
        k = k.intersection(In[e])
    if len(k) != 0: print(' '.join(k))
    else: print('None')
'''
# 1679255, 2022-11-12 10:01:06, ---- (0%)

x = input().split()

Fac = {}
# {'Luffy': {'faculty_a'}, 'Nami': {'faculty_a'}, 'Sanji': {'faculty_b'}, 'Zoro': {'faculty_c'}, 'Robin': {'faculty_c'},
# 'Chopper': {'faculty_a'}, 'Brook': {'faculty_c'}, 'Franky': {'faculty_b'}}
for i in range(int(x[0])):
    name, fac = input().split()
    if name not in Fac: Fac[name] = set()
    Fac[name].add( fac )
    
Guest = {}
# {'Eren': {'Nami', 'Chopper', 'Brook'}, 'Anya': {'Luffy', 'Sanji'}, 'Yaiba': {'Franky'}}
for i in range(int(x[1])):
    y = input().split()
    guest = y[0]
    l = y[1:]
    if guest not in Guest: Guest[guest] = set()
    for j in l:
        Guest[guest].add(j)

un = {}
In = {}
p = set()
# {'Eren': {'Brook', 'Nami', 'Chopper'}, 'Anya': {'Sanji', 'Luffy'}, 'Yaiba': {'Franky'}}
for i in range(int(x[2])):
    l = []
    g = input().split()
    for e in g:
        s = set()
        s |= Guest[e]
        un[e] = s
    for e in un:
        s = set()
        # e = guest
        for j in un[e]: # j = name
            s |= Fac[j]
        In[e] = s
    k = set()
    for e in In:
        if len(k) == 0: k = In[e]
        k = k.intersection(In[e])
    K = [p for p in l]
    K.sort()
    if len(K) != 0: print(' '.join(K))
    else: print('None')
# 1679273, 2022-11-12 10:01:52, PPP- (75%)

x = input().split()

Fac = {}
# {'Luffy': {'faculty_a'}, 'Nami': {'faculty_a'}, 'Sanji': {'faculty_b'}, 'Zoro': {'faculty_c'}, 'Robin': {'faculty_c'},
# 'Chopper': {'faculty_a'}, 'Brook': {'faculty_c'}, 'Franky': {'faculty_b'}}
for i in range(int(x[0])):
    name, fac = input().split()
    if name not in Fac: Fac[name] = set()
    Fac[name].add( fac )
    
Guest = {}
# {'Eren': {'Nami', 'Chopper', 'Brook'}, 'Anya': {'Luffy', 'Sanji'}, 'Yaiba': {'Franky'}}
for i in range(int(x[1])):
    y = input().split()
    guest = y[0]
    l = y[1:]
    if guest not in Guest: Guest[guest] = set()
    for j in l:
        Guest[guest].add(j)

un = {}
In = {}
p = set()
# {'Eren': {'Brook', 'Nami', 'Chopper'}, 'Anya': {'Sanji', 'Luffy'}, 'Yaiba': {'Franky'}}
for i in range(int(x[2])):
    l = []
    g = input().split()
    for e in g:
        s = set()
        s |= Guest[e]
        un[e] = s
    for e in un:
        s = set()
        # e = guest
        for j in un[e]: # j = name
            s |= Fac[j]
        In[e] = s
    k = set()
    for e in In:
        if len(k) == 0: k = In[e]
        k = k.intersection(In[e])
    K = [p for p in k]
    K.sort()
    if len(K) != 0: print(' '.join(K))
    else: print('None')
'''
8 3 2
Luffy faculty_a
Nami faculty_a
Sanji faculty_b
Zoro faculty_c
Robin faculty_c
Chopper faculty_a
Brook faculty_c
Franky faculty_b
Eren Nami Chopper Brook
Anya Sanji Luffy
Yaiba Franky
Eren Anya
Anya Eren Yaiba
'''

# 1680540, 2022-11-12 11:00:31, P-P- (50%)

x = input().split()

Fac = {}
# {'Luffy': {'faculty_a'}, 'Nami': {'faculty_a'}, 'Sanji': {'faculty_b'}, 'Zoro': {'faculty_c'}, 'Robin': {'faculty_c'},
# 'Chopper': {'faculty_a'}, 'Brook': {'faculty_c'}, 'Franky': {'faculty_b'}}
for i in range(int(x[0])):
    name, fac = input().split()
    if name not in Fac: Fac[name] = set()
    Fac[name].add( fac )
    
Guest = {}
# {'Eren': {'Nami', 'Chopper', 'Brook'}, 'Anya': {'Luffy', 'Sanji'}, 'Yaiba': {'Franky'}}
for i in range(int(x[1])):
    y = input().split()
    guest = y[0]
    l = y[1:]
    if guest not in Guest: Guest[guest] = set()
    for j in l:
        Guest[guest].add(j)

un = {}
In = {}
p = set()
# {'Eren': {'Brook', 'Nami', 'Chopper'}, 'Anya': {'Sanji', 'Luffy'}, 'Yaiba': {'Franky'}}
for i in range(int(x[2])):
    l = []
    g = input().split()
    for e in g:
        s = set()
        s |= Guest[e]
        un[e] = s
    for e in un:
        s = set()
        # e = guest
        for j in un[e]: # j = name
            s |= Fac[j]
        In[e] = s
    k = set()
    for e in In:
        if len(k) == 0: k = In[e]
        k = k.intersection(In[e])
    K = [p for p in k]
    K.sort()
    if len(K) != 0: print(' '.join(K))
    else: print('None')
'''
8 3 2
Luffy faculty_a
Nami faculty_a
Sanji faculty_b
Zoro faculty_c
Robin faculty_c
Chopper faculty_a
Brook faculty_c
Franky faculty_b
Eren Nami Chopper Brook
Anya Sanji Luffy Brook
Yaiba Franky
Eren Anya
Anya Eren Yaiba

8 2 1
Luffy faculty_a
Nami faculty_a
Sanji faculty_b
Zoro fac_c
Robin fac_c
Chopper faculty_a
Brook fac_c
Franky faculty_b
Shinji Sanji Chopper
Amuro Zoro Sanji Nami
Amuro Shinji
'''

# 1680549, 2022-11-12 11:00:59, P-P- (50%)

x = input().split()

Fac = {}
# {'Luffy': {'faculty_a'}, 'Nami': {'faculty_a'}, 'Sanji': {'faculty_b'}, 'Zoro': {'faculty_c'}, 'Robin': {'faculty_c'},
# 'Chopper': {'faculty_a'}, 'Brook': {'faculty_c'}, 'Franky': {'faculty_b'}}
for i in range(int(x[0])):
    name, fac = input().split()
    if name not in Fac: Fac[name] = set()
    Fac[name].add( fac )
    
Guest = {}
# {'Eren': {'Nami', 'Chopper', 'Brook'}, 'Anya': {'Luffy', 'Sanji'}, 'Yaiba': {'Franky'}}
for i in range(int(x[1])):
    y = input().split()
    guest = y[0]
    l = y[1:]
    if guest not in Guest: Guest[guest] = set()
    for j in l:
        Guest[guest].add(j)

un = {}
In = {}
p = set()
# {'Eren': {'Brook', 'Nami', 'Chopper'}, 'Anya': {'Sanji', 'Luffy'}, 'Yaiba': {'Franky'}}
for i in range(int(x[2])):
    l = []
    g = input().split()
    for e in g:
        s = set()
        s |= Guest[e]
        un[e] = s
    for e in un:
        s = set()
        # e = guest
        for j in un[e]: # j = name
            s |= Fac[j]
        In[e] = s
    k = set()
    for e in In:
        if len(k) == 0: k = In[e]
        k = k.intersection(In[e])
    K = [p for p in k]
    K.sort()
    if len(K) != 0: print(' '.join(K))
    else: print('None')
# 1680741, 2022-11-12 11:07:40, P-P- (50%)

x = input().split()

Fac = {}
# {'Luffy': {'faculty_a'}, 'Nami': {'faculty_a'}, 'Sanji': {'faculty_b'}, 'Zoro': {'faculty_c'}, 'Robin': {'faculty_c'},
# 'Chopper': {'faculty_a'}, 'Brook': {'faculty_c'}, 'Franky': {'faculty_b'}}
for i in range(int(x[0])):
    name, fac = input().split()
    if name not in Fac: Fac[name] = set()
    Fac[name].add( fac )
    
Guest = {}
# {'Eren': {'Nami', 'Chopper', 'Brook'}, 'Anya': {'Luffy', 'Sanji'}, 'Yaiba': {'Franky'}}
for i in range(int(x[1])):
    y = input().split()
    guest = y[0]
    l = y[1:]
    if guest not in Guest: Guest[guest] = set()
    for j in l:
        Guest[guest].add(j)

un = {}
In = {}
p = set()
# {'Eren': {'Brook', 'Nami', 'Chopper'}, 'Anya': {'Sanji', 'Luffy'}, 'Yaiba': {'Franky'}}
for i in range(int(x[2])):
    l = []
    g = input().split()
    for e in g:
        s = set()
        s |= Guest[e]
        un[e] = s
    for e in un:
        s = set()
        # e = guest
        for j in un[e]: # j = name
            s |= Fac[j]
        In[e] = s
    k = set()
    for e in In:
        if len(k) == 0: k = In[e]
        k = k.intersection(In[e])
    K = [p for p in k]
    K.sort()
    if len(K) != 0: print(' '.join(K))
    else: print('None')
'''
8 3 2
Luffy faculty_a
Nami faculty_a
Sanji faculty_b
Zoro faculty_c
Robin faculty_c
Chopper faculty_a
Brook faculty_c
Franky faculty_b
Eren Nami Chopper Brook
Anya Sanji Luffy
Yaiba Franky
Eren Anya
Anya Eren Yaiba
'''
# 1681366, 2022-11-12 11:25:21, P-P- (50%)

#Guest =# {'Eren': {'Nami', 'Chopper', 'Brook'}, 'Anya': {'Luffy', 'Sanji'}, 'Yaiba': {'Franky'}}

x = input().split()

Fac = {}
# {'Luffy': {'faculty_a'}, 'Nami': {'faculty_a'}, 'Sanji': {'faculty_b'}, 'Zoro': {'faculty_c'}, 'Robin': {'faculty_c'},
# 'Chopper': {'faculty_a'}, 'Brook': {'faculty_c'}, 'Franky': {'faculty_b'}}
for i in range(int(x[0])):
    name, fac = input().split()
    if name not in Fac: Fac[name] = set()
    Fac[name].add( fac )
    
Guest = {}
# {'Eren': {'Nami', 'Chopper', 'Brook'}, 'Anya': {'Luffy', 'Sanji'}, 'Yaiba': {'Franky'}}
for i in range(int(x[1])):
    y = input().split()
    guest = y[0]
    l = y[1:]
    if guest not in Guest: Guest[guest] = set()
    for j in l:
        Guest[guest].add(j)
o ={}
for i in range(int(x[2])):
    k = input().split()
    for p in k:
        for e in Guest[p]:
            # e = Nami
            if p not in o: o[p] = set()
            o[p]|=(Fac[e])
    s = set()
    for e in o:
        if len(s) == 0: s = o[e]
        s = s.intersection(o[e])
    K = [e for e in s]
    K.sort()
    if len(K) != 0: print(' '.join(K))
    else: print('None')


6530020121
# 1679999, 2022-11-12 10:37:08, xxPx (25%)

def xinput():
    return data.pop(0)

def fac_recall(e):
    res = []
    set_res = []
    set_res2 = []
    result = set()
    com1 = []
    com2 = set()
    for i in visit_1[e[0]]:
        set_res.append(bandit[i])
    set_res = set(set_res)
    #print(set_res)
    for i in e:
        res = []
        for k in visit_1[i]:
            res.append(bandit[k])
            #print(res)
            set_res2 = set(res)
        #print(set_res2)
        set_res = set_res.intersection(set_res2)
    if len(set_res) != 0:
        out = []
        for i in set_res:
            out.append(i)
            out.sort()
            word_out = (' ').join(out)
        return word_out

    else:
        return None
    #for i in res:

'''data = [
    '8 3 2',
'Luffy faculty_a',
'Nami faculty_a',
'Sanji faculty_b',
'Zoro faculty_c',
'Robin faculty_c',
'Chopper faculty_a',
'Brook faculty_c',
'Franky faculty_b',
'Eren Nami Chopper Brook',
'Anya Sanji Luffy',
'Yaiba Franky',
'Eren Anya',
'Anya Eren Yaiba'
    ]'''

data = [
    '8 2 1',
'Luffy faculty_a',
'Nami faculty_a',
'Sanji faculty_b',
'Zoro fac_c',
'Robin fac_c',
'Chopper faculty_a',
'Brook fac_c',
'Franky faculty_b',
'Shinji Sanji Chopper',
'Amuro Zoro Sanji Nami',
'Amuro Shinji'
    ]

bandit = {}
visit_1 = {}
n,m,k = input().split(' ')
n = int(n)
m = int(m)
k = int(k)
for i in range(n):
    name,fac = input().split(' ')
    if fac not in bandit:
        bandit[name] = fac
    '''else:
        bandit[fac].append(name)'''
#print(bandit)
for i in range(m):
    temp = input().split(' ')
    visit_1[temp[0]] = []
    for kk in range(1,len(temp)):
        visit_1[temp[0]].append(temp[kk])
#print(visit_1)
'''Calling Visit'''
for j in range(k):
    temp2 = input().split(' ')
    print(fac_recall(temp2))

# 1680077, 2022-11-12 10:40:38, xxPx (25%)

def xinput():
    return data.pop(0)

def fac_recall(e):
    res = []
    set_res = []
    set_res2 = []
    result = set()
    com1 = []
    com2 = set()
    for i in visit_1[e[0]]:
        set_res.append(bandit[i])
    set_res = set(set_res)
    #print(set_res)
    for i in e:
        res = []
        for k in visit_1[i]:
            res.append(bandit[k])
            #print(res)
            set_res2 = set(res)
        #print(set_res2)
        set_res = set_res.intersection(set_res2)
    if len(set_res) != 0:
        out = []
        for i in set_res:
            out.append(i)
            out.sort()
            word_out = (' ').join(out)
        return word_out

    else:
        return 'None'
    #for i in res:

'''data = [
    '8 3 2',
'Luffy faculty_a',
'Nami faculty_a',
'Sanji faculty_b',
'Zoro faculty_c',
'Robin faculty_c',
'Chopper faculty_a',
'Brook faculty_c',
'Franky faculty_b',
'Eren Nami Chopper Brook',
'Anya Sanji Luffy',
'Yaiba Franky',
'Eren Anya',
'Anya Eren Yaiba'
    ]'''

data = [
    '8 2 1',
'Luffy faculty_a',
'Nami faculty_a',
'Sanji faculty_b',
'Zoro fac_c',
'Robin fac_c',
'Chopper faculty_a',
'Brook fac_c',
'Franky faculty_b',
'Shinji Sanji Chopper',
'Amuro Zoro Sanji Nami',
'Amuro Shinji'
    ]

bandit = {}
visit_1 = {}
n,m,k = input().split(' ')
n = int(n)
m = int(m)
k = int(k)
for i in range(n):
    name,fac = input().split(' ')
    if fac not in bandit:
        bandit[name] = fac
    '''else:
        bandit[fac].append(name)'''
#print(bandit)
for i in range(m):
    temp = input().split(' ')
    visit_1[temp[0]] = []
    for kk in range(1,len(temp)):
        visit_1[temp[0]].append(temp[kk])
#print(visit_1)
'''Calling Visit'''
for j in range(k):
    temp2 = input().split(' ')
    print(fac_recall(temp2))
# 1680241, 2022-11-12 10:48:53, xPPP (75%)

def xinput():
    return data.pop(0)

def fac_recall(e):
    res = []
    set_res = []
    set_res2 = []
    result = set()
    com1 = []
    com2 = set()
    for i in visit_1[e[0]]:
        set_res.append(bandit[i])
    set_res = set(set_res)
    #print(set_res)
    for i in e:
        res = []
        for k in visit_1[i]:
            res.append(bandit[k])
            #print(res)
            set_res2 = set(res)
        #print(set_res2)
        set_res = set_res.intersection(set_res2)
    if len(set_res) != 0:
        out = []
        for i in set_res:
            out.append(i)
            out.sort()
            word_out = (' ').join(out)
        return word_out

    else:
        return 'None'
    #for i in res:

'''data = [
    '8 3 2',
'Luffy faculty_a',
'Nami faculty_a',
'Sanji faculty_b',
'Zoro faculty_c',
'Robin faculty_c',
'Chopper faculty_a',
'Brook faculty_c',
'Franky faculty_b',
'Eren Nami Chopper Brook',
'Anya Sanji Luffy',
'Yaiba Franky',
'Eren Anya',
'Anya Eren Yaiba'
    ]'''

data = [
    '8 2 1',
'Luffy faculty_a',
'Nami faculty_a',
'Sanji faculty_b',
'Zoro fac_c',
'Robin fac_c',
'Chopper faculty_a',
'Brook fac_c',
'Franky faculty_b',
'Shinji Sanji Chopper',
'Amuro Zoro Sanji Nami',
'Amuro Shinji'
    ]

bandit = {}
visit_1 = {}
n,m,k = input().strip().split(' ')
n = int(n)
m = int(m)
k = int(k)
for i in range(n):
    name,fac = input().strip().split(' ')
    if fac not in bandit:
        bandit[name] = fac
    '''else:
        bandit[fac].append(name)'''
#print(bandit)
for i in range(m):
    temp = input().strip().split(' ')
    visit_1[temp[0]] = []
    for kk in range(1,len(temp)):
        visit_1[temp[0]].append(temp[kk])
#print(visit_1)
'''Calling Visit'''
for j in range(k):
    temp2 = input().strip().split(' ')
    print(fac_recall(temp2))
# 1680253, 2022-11-12 10:49:29, xPPP (75%)

def xinput():
    return data.pop(0)

def fac_recall(e):
    res = []
    set_res = []
    set_res2 = []
    result = set()
    com1 = []
    com2 = set()
    for i in visit_1[e[0]]:
        set_res.append(bandit[i])
    set_res = set(set_res)
    #print(set_res)
    for i in e:
        res = []
        for k in visit_1[i]:
            res.append(bandit[k])
            #print(res)
            set_res2 = set(res)
        #print(set_res2)
        set_res = set_res.intersection(set_res2)
    if len(set_res) != 0:
        out = []
        for i in set_res:
            out.append(i)
            out.sort()
            word_out = (' ').join(out)
        return word_out

    else:
        return 'None'
    #for i in res:

'''data = [
    '8 3 2',
'Luffy faculty_a',
'Nami faculty_a',
'Sanji faculty_b',
'Zoro faculty_c',
'Robin faculty_c',
'Chopper faculty_a',
'Brook faculty_c',
'Franky faculty_b',
'Eren Nami Chopper Brook',
'Anya Sanji Luffy',
'Yaiba Franky',
'Eren Anya',
'Anya Eren Yaiba'
    ]'''

data = [
    '8 2 1',
'Luffy faculty_a',
'Nami faculty_a',
'Sanji faculty_b',
'Zoro fac_c',
'Robin fac_c',
'Chopper faculty_a',
'Brook fac_c',
'Franky faculty_b',
'Shinji Sanji Chopper',
'Amuro Zoro Sanji Nami',
'Amuro Shinji'
    ]

bandit = {}
visit_1 = {}
n,m,k = input().strip().split(' ')
n = int(n)
m = int(m)
k = int(k)
for i in range(n):
    name,fac = input().strip().split(' ')
    if fac not in bandit:
        bandit[name] = fac
    '''else:
        bandit[fac].append(name)'''
#print(bandit)
for i in range(m):
    temp = input().strip().split(' ')
    visit_1[temp[0]] = []
    for kk in range(1,len(temp)):
        visit_1[temp[0]].append(temp[kk])
#print(visit_1)
'''Calling Visit'''
for j in range(k):
    temp2 = input().strip().split(' ')
    print(fac_recall(temp2))
# 1680314, 2022-11-12 10:52:09, xPPP (75%)

def xinput():
    return data.pop(0)

def fac_recall(e):
    res = []
    set_res = []
    set_res2 = []
    result = set()
    com1 = []
    com2 = set()
    e = [idk for idk in e if idk in visit_1.keys()]
    for i in visit_1[e[0]]:
        set_res.append(bandit[i])
    set_res = set(set_res)
    #print(set_res)
    for i in e:
        res = []
        for k in visit_1[i]:
            res.append(bandit[k])
            #print(res)
            set_res2 = set(res)
        #print(set_res2)
        set_res = set_res.intersection(set_res2)
    if len(set_res) != 0:
        out = []
        for i in set_res:
            out.append(i)
            out.sort()
            word_out = (' ').join(out)
        return word_out

    else:
        return 'None'
    #for i in res:

'''data = [
    '8 3 2',
'Luffy faculty_a',
'Nami faculty_a',
'Sanji faculty_b',
'Zoro faculty_c',
'Robin faculty_c',
'Chopper faculty_a',
'Brook faculty_c',
'Franky faculty_b',
'Eren Nami Chopper Brook',
'Anya Sanji Luffy',
'Yaiba Franky',
'Eren Anya',
'Anya Eren Yaiba'
    ]'''

data = [
    '8 2 1',
'Luffy faculty_a',
'Nami faculty_a',
'Sanji faculty_b',
'Zoro fac_c',
'Robin fac_c',
'Chopper faculty_a',
'Brook fac_c',
'Franky faculty_b',
'Shinji Sanji Chopper',
'Amuro Zoro Sanji Nami',
'Amuro Shinji'
    ]

bandit = {}
visit_1 = {}
n,m,k = input().strip().split(' ')
n = int(n)
m = int(m)
k = int(k)
for i in range(n):
    name,fac = input().strip().split(' ')
    if fac not in bandit:
        bandit[name] = fac
    '''else:
        bandit[fac].append(name)'''
#print(bandit)
for i in range(m):
    temp = input().strip().split(' ')
    visit_1[temp[0]] = []
    for kk in range(1,len(temp)):
        visit_1[temp[0]].append(temp[kk])
#print(visit_1)
'''Calling Visit'''
for j in range(k):
    temp2 = input().strip().split(' ')
    print(fac_recall(temp2))

6531341821
# 1679022, 2022-11-12 09:48:02, PPP- (75%)

s=input().split()
s=[int(i) for i in s]
faculty={}
for i in range(s[0]):
    b=input().split()
    faculty[b[0]]=b[1]
guest=[]
temp={}

for i in range(s[1]):
    b=input().split()
    
    temp2=[]
    temp3=set()
    for j in range(len(b)-1):
        
        temp2.append(faculty[b[j+1]])
    temp3=set(temp2)
    temp[b[0]]=temp3

for i in range(s[2]):
    inter=[]
    b=input().split()
    for j in b:
        inter.append(temp[j])
    u=set()
    for k in range(len(inter)-1):
        u=inter[k].intersection(inter[k+1])
    ans=[]
    for l in u:
        ans.append(l)
    ans.sort()
    ans2=''
    for l in ans:
        ans2+=l+" "
    if len(ans2)==0:
        print('None')
    else:
        print(ans2)
    
        
        

        
    
    

# 1679210, 2022-11-12 09:58:34, ---- (0%)

s=input().split()
s=[int(i) for i in s]
faculty={}
for i in range(s[0]):
    b=input().split()
    faculty[b[0]]=b[1]
guest=[]
temp={}
for i in range(s[1]):
    b=input().split()
    
    temp2=[]
    temp3=set()
    for j in range(len(b)-1):
        if b[j] in faculty:
            temp2.append(faculty[b[j+1]])
    temp3=set(temp2)
    temp[b[0]]=temp3
print(temp)
for i in range(s[2]):
    inter=[]
    b=input().split()
    for j in b:
        inter.append(temp[j])
    u=set()
    for k in range(len(inter)-1):
        u=inter[k].intersection(inter[k+1])
    ans=[]
    for l in u:
        ans.append(l)
    ans.sort()
    ans2=''
    for l in ans:
        ans2+=l+" "
    if len(ans2)==0:
        print('None')
    else:
        print(ans2)
    
        
        

        
    
    

# 1679218, 2022-11-12 09:59:00, ---- (0%)

s=input().split()
s=[int(i) for i in s]
faculty={}
for i in range(s[0]):
    b=input().split()
    faculty[b[0]]=b[1]
guest=[]
temp={}
for i in range(s[1]):
    b=input().split()
    
    temp2=[]
    temp3=set()
    for j in range(len(b)-1):
        if b[j+1] in faculty:
            temp2.append(faculty[b[j+1]])
    temp3=set(temp2)
    temp[b[0]]=temp3
print(temp)
for i in range(s[2]):
    inter=[]
    b=input().split()
    for j in b:
        inter.append(temp[j])
    u=set()
    for k in range(len(inter)-1):
        u=inter[k].intersection(inter[k+1])
    ans=[]
    for l in u:
        ans.append(l)
    ans.sort()
    ans2=''
    for l in ans:
        ans2+=l+" "
    if len(ans2)==0:
        print('None')
    else:
        print(ans2)
# 1679237, 2022-11-12 10:00:09, PPP- (75%)

s=input().split()
s=[int(i) for i in s]
faculty={}
for i in range(s[0]):
    b=input().split()
    faculty[b[0]]=b[1]
guest=[]
temp={}
for i in range(s[1]):
    b=input().split()
    
    temp2=[]
    temp3=set()
    for j in range(len(b)-1):
        if b[j+1] in faculty:
            temp2.append(faculty[b[j+1]])
    temp3=set(temp2)
    temp[b[0]]=temp3
for i in range(s[2]):
    inter=[]
    b=input().split()
    for j in b:
        inter.append(temp[j])
    u=set()
    for k in range(len(inter)-1):
        u=inter[k].intersection(inter[k+1])
    ans=[]
    for l in u:
        ans.append(l)
    ans.sort()
    ans2=''
    for l in ans:
        ans2+=l+" "
    if len(ans2)==0:
        print('None')
    else:
        print(ans2)
# 1679490, 2022-11-12 10:13:16, PPP- (75%)

s=input().split()
s=[int(i) for i in s]
faculty={}
for i in range(s[0]):
    b=input().split()
    faculty[b[0]]=b[1]
guest=[]
temp={}
for i in range(s[1]):
    b=input().split()
    temp2=[]
    temp3=set()
    for j in range(len(b)-1):
        if b[j+1] in faculty:
            temp2.append(faculty[b[j+1]])
    temp3=set(temp2)
    temp[b[0]]=temp3
for i in range(s[2]):
    inter=[]
    b=input().split()
    for j in b:
        inter.append(temp[j])
    u=set()
    for k in range(len(inter)-1):
        u=inter[k].intersection(inter[k+1])
    ans=[]
    for l in u:
        ans.append(l)
    ans.sort()
    ans2=''
    for l in ans:
        ans2+=l+" "
    if len(ans)==0:
        print('None')
    else:
        print(ans2[:-1])
    
        
        

        
    
    


6231110921
# 1679940, 2022-11-12 10:33:54, ---- (0%)

N,M,K = input().strip().split(' ')
a = {} # บัณฑิต:คณะ
for n in range(int(N)):
    name,fac = input().strip().split(' ')
    a[name] = fac
g = {}
for m in range(int(M)):
    guest = input().strip().split(' ')
    g[guest[0]] = guest[1:]
sonjai = []
for k in range(int(K)):
    sj = input().strip().split(' ')
    sonjai+=[sj]
out = []
for w in sonjai:
    same = {v:[] for v in w}
    for v in w:
        chck = []
        chck+=g[v]
        for j in chck:
            same[v]+=[a[j]]
    compare = []
    for va in same.values():
        compare+=[va]
    q = []
    for e in range(1,len(compare)):
        for i in range(len(compare[e])):
            if compare[e][i] in compare[e-1]:
                q+=[compare[e][i]]
            else:
                q+=['None']
    q.sort()
    if 'None' in q:
        out+=['None']
    else:
        out+=[q]
for o in out:
    print(o)
        


# 1681146, 2022-11-12 11:19:56, PPP- (75%)

N,M,K = input().strip().split(' ')
a = {} # บัณฑิต:คณะ
for n in range(int(N)):
    name,fac = input().strip().split(' ')
    a[name] = [fac]
g = {}
for m in range(int(M)):
    guest = input().strip().split(' ')
    g[guest[0]] = guest[1:]
sonjai = []
for k in range(int(K)):
    sj = input().strip().split(' ')
    sonjai+=[sj]
out = []
for w in sonjai:
    same = {v:set() for v in w}
    for v in w:
        chck = []
        chck+=g[v]
        for j in chck:
            #same[v]+=[a[j]]
            same[v].update(a[j])
    n = []
    for k in same.keys():
        n+=[k]
    outt = set()
    for va in range(1,len(n)):
        if same[n[va]].intersection(same[n[va-1]]) != set():
            outt.update(same[n[va]].intersection(same[n[va-1]]))
        else:
            outt.update(['None'])
    if 'None' in outt:
        out+=['None']
    else:
        outt = list(outt)
        outt.sort()
        out+=outt
for f in out:
    print(f)


# 1681253, 2022-11-12 11:22:38, PPP- (75%)

N,M,K = input().strip().split(' ')
a = {} # บัณฑิต:คณะ
for n in range(int(N)):
    name,fac = input().strip().split(' ')
    a[name] = [fac]
g = {}
for m in range(int(M)):
    guest = input().strip().split(' ')
    g[guest[0]] = guest[1:]
sonjai = []
for k in range(int(K)):
    sj = input().strip().split(' ')
    sonjai+=[sj]
out = []
for w in sonjai:
    same = {v:set() for v in w}
    for v in w:
        chck = []
        chck+=g[v]
        for j in chck:
            #same[v]+=[a[j]]
            same[v].update(a[j])
    n = []
    for k in same.keys():
        n+=[k]
    outt = set()
    for va in range(1,len(n)):
        if same[n[va]].intersection(same[n[va-1]]) != set():
            outt.update(same[n[va]].intersection(same[n[va-1]]))
        else:
            outt.update(['None'])
    if 'None' in outt:
        out+=['None']
    else:
        outt = list(outt)
        outt.sort()
        out+=[outt]
for f in out:
    if f != 'None':
        f=' '.join(f)
    print(f)
# 1681518, 2022-11-12 11:28:12, PPP- (75%)

N,M,K = input().strip().split(' ')
a = {} # บัณฑิต:คณะ
for n in range(int(N)):
    name,fac = input().strip().split(' ')
    a[name] = [fac]
g = {}
for m in range(int(M)):
    guest = input().strip().split(' ')
    g[guest[0]] = guest[1:]
sonjai = []
for k in range(int(K)):
    sj = input().strip().split(' ')
    sonjai+=[sj]
out = []
for w in sonjai:
    same = {v:set() for v in w}
    for v in w:
        chck = []
        chck+=g[v]
        for j in chck:
            #same[v]+=[a[j]]
            if j in a:
                same[v].update(a[j])
    n = []
    for k in same.keys():
        n+=[k]
    outt = set()
    for va in range(1,len(n)):
        if same[n[va]].intersection(same[n[va-1]]) != set():
            outt.update(same[n[va]].intersection(same[n[va-1]]))
        else:
            outt.update(['None'])
    if 'None' in outt:
        out+=['None']
    else:
        outt = list(outt)
        outt.sort()
        out+=[outt]
for f in out:
    if f != 'None':
        f=' '.join(f)
    print(f)



6530041321
# 1679494, 2022-11-12 10:13:22, PPP- (75%)

x = input().split()
n = int(x[0])
m = int(x[1])
k = int(x[2])

fac = {}
for i in range(n):
    a,b = input().strip().split()
    fac[a] = b

guest = {}
for i in range(m):
    g = input().strip().split()
    guest[g[0]] = g[1:]

for i in range(k):
    itr = input().strip().split()
    same_fac = [set() for each_guest in itr]
    for j in range(len(itr)):
        if itr[j] in guest:
            for v in guest[itr[j]]:
                same_fac[j].add(fac[v])
    ans = set()
    for ff in range(len(same_fac)-1):
        ans = same_fac[ff] & same_fac[ff+1]
    ans = sorted(ans)
    if len(ans) == 0:
        print('None')
    else:
        ans = ' '.join(ans)
        print(ans)
# 1679503, 2022-11-12 10:13:37, PPP- (75%)

x = input().split()
n = int(x[0])
m = int(x[1])
k = int(x[2])

fac = {}
for i in range(n):
    a,b = input().strip().split()
    fac[a] = b

guest = {}
for i in range(m):
    g = input().strip().split()
    guest[g[0]] = g[1:]

for i in range(k):
    itr = input().strip().split()
    same_fac = [set() for each_guest in itr]
    for j in range(len(itr)):
        if itr[j] in guest:
            for v in guest[itr[j]]:
                same_fac[j].add(fac[v])
    ans = set()
    for ff in range(len(same_fac)-1):
        ans = same_fac[ff] & same_fac[ff+1]
    ans = sorted(ans)
    if len(ans) == 0:
        print('None')
    else:
        ans = ' '.join(ans)
        print(ans)
# 1681450, 2022-11-12 11:26:52, PPP- (75%)

x = input().split()
n = int(x[0])
m = int(x[1])
k = int(x[2])

fac = {}
for i in range(n):
    a,b = input().strip().split()
    fac[a] = b

guest = {}
for i in range(m):
    g = input().strip().split()
    guest[g[0]] = g[1:]

for i in range(k):
    itr = input().strip().split()
    same_fac = [set() for each_guest in itr]
    for j in range(len(itr)):
        if itr[j] in guest:
            for v in guest[itr[j]]:
                same_fac[j].add(fac[v])
    ans = set()
    for ff in range(1,len(same_fac)):
        ans = same_fac[ff] & same_fac[ff-1]
    ans = sorted(ans)
    if len(ans) == 0:
        print('None')
    else:
        ans = ' '.join(ans)
        print(ans)

6530050021
# 1679961, 2022-11-12 10:35:18, PP-- (50%)

N,M,K = input().split()
# banditfac ={'1': 'a', '2': 'a'}
banditfac = {}
for i in range(int(N)):
    name,fac = input().split()
    banditfac[name] = fac

banditguest = {}
for j in range(int(M)):
    a = input().split()
    guest = a[0]
    bandit = a[1::]
    banditguest[guest] = bandit

guestfac = {}
for e in banditguest:
    for f in banditguest[e]:
        if e not in guestfac:
            guestfac[e] = {banditfac[f]}
        else:
            guestfac[e].add(banditfac[f]) 

guestfac = {}
for e in banditguest:
    for f in banditguest[e]:
        if e not in guestfac:
            guestfac[e] = {banditfac[f]}
        else:
            guestfac[e].add(banditfac[f])
            
for k in range(int(K)):
    b = input().split()
    intersec = {}
    for i in range(len(b)):
        for j in range(i+1,len(b)):
            intersec = guestfac[b[i]].intersection(guestfac[b[j]])
    if len(intersec) == 0:
        print("None")
    else:
        intersec = list(intersec)
        print(" ".join(intersec))
            
        

        
  
# banditguest = {guest:[1,2,3,4,5],
# 1680052, 2022-11-12 10:39:26, PP-- (50%)

N,M,K = input().split()
# banditfac ={'1': 'a', '2': 'a'}
banditfac = {}
for i in range(int(N)):
    name,fac = input().split()
    banditfac[name] = fac

banditguest = {}
for j in range(int(M)):
    a = input().split()
    guest = a[0]
    bandit = a[1::]
    banditguest[guest] = bandit

guestfac = {}
for e in banditguest:
    for f in banditguest[e]:
        if e not in guestfac:
            guestfac[e] = {banditfac[f]}
        else:
            guestfac[e].add(banditfac[f]) 

guestfac = {}
for e in banditguest:
    for f in banditguest[e]:
        if e not in guestfac:
            guestfac[e] = {banditfac[f]}
        else:
            guestfac[e].add(banditfac[f])
p = []           
for k in range(int(K)):
    b = input().split()
    intersec = {}
    for i in range(len(b)):
        for j in range(i+1,len(b)):
            intersec = guestfac[b[i]].intersection(guestfac[b[j]])
    if len(intersec) == 0:
        p.append("None")
    else:
        intersec = list(intersec)
        p.append(" ".join(intersec))
for e in p:
    print(e)
        

        
  
# banditguest = {guest:[1,2,3,4,5],
# 1680182, 2022-11-12 10:45:30, PPP- (75%)

N,M,K = input().split()
# banditfac ={'1': 'a', '2': 'a'}
banditfac = {}
for i in range(int(N)):
    name,fac = input().split()
    banditfac[name] = fac

banditguest = {}
for j in range(int(M)):
    a = input().split()
    guest = a[0]
    bandit = a[1::]
    banditguest[guest] = bandit

guestfac = {}
for e in banditguest:
    for f in banditguest[e]:
        if e not in guestfac:
            guestfac[e] = {banditfac[f]}
        else:
            guestfac[e].add(banditfac[f]) 

guestfac = {}
for e in banditguest:
    for f in banditguest[e]:
        if e not in guestfac:
            guestfac[e] = {banditfac[f]}
        else:
            guestfac[e].add(banditfac[f])
p = []           
for k in range(int(K)):
    b = input().split()
    intersec = {}
    for i in range(len(b)):
        for j in range(i+1,len(b)):
            intersec = guestfac[b[i]].intersection(guestfac[b[j]])
    if len(intersec) == 0:
        p.append("None")
    else:
        intersec = sorted(list(intersec))
        p.append(" ".join(intersec))

for e in p:
    print(e)
        

        
  
# banditguest = {guest:[1,2,3,4,5],

6530055121
# 1679942, 2022-11-12 10:34:06, xxxx (0%)

n, m, k = input().split()
d = {}
for i in range(int(n)):
    x, y = input().split()
    if y not in d:
        d[x] = {y}
    else:
        d[x].add(y)
p = {}
for i in range(int(m)):
    x = input().split()
    s = set()
    for j in range(1, len(x)):
        s.add(d[x[j]])
    p[x[0]] = s

for i in range(int(k)):
    x = input().split()
    out = set()
    for i in range(len(x)-1):
        out = p[x[i]] & p[x[i+1]]
    if out != set():
        out_real = []
        for e in out:
            out_real.append(e)
        out_real.sort()
        print(" ".join(out_real))
    else:
        print("None")
        
# 1680480, 2022-11-12 10:58:19, xxxx (0%)

n, m = input().split()
stu = {}
for i in range(int(n)):
    name, fac = input().split()
    stu[name] = fac

par = {}
for i in range(int(m)):
    x = input().split()
    s = []
    for j in range(1,len(x)):
        s.append(stu[x[j]])
    par[x[0]] = s

for i in range(int(k)):
    x = input().split()
    s = set()
    for i in range(len(x)-1):
        s = set(par[x[i]]) & set(par[x[i+1]])
    out = []
    if s == set():
        print("None")
    else:    
        for e in s:
            out.append(e)
        out.sort()
        out_real = " ".join(out)
        print(out_real)
        
# 1680515, 2022-11-12 10:59:43, PPP- (75%)

n, m, k = input().split()
stu = {}
for i in range(int(n)):
    name, fac = input().split()
    stu[name] = fac

par = {}
for i in range(int(m)):
    x = input().split()
    s = []
    for j in range(1,len(x)):
        s.append(stu[x[j]])
    par[x[0]] = s

for i in range(int(k)):
    x = input().split()
    s = set()
    for i in range(len(x)-1):
        s = set(par[x[i]]) & set(par[x[i+1]])
    out = []
    if s == set():
        print("None")
    else:    
        for e in s:
            out.append(e)
        out.sort()
        out_real = " ".join(out)
        print(out_real)
        


6530139221
# 1680123, 2022-11-12 10:42:40, ---- (0%)

N, M, K = input().split()
N = int(N)
M = int(M)
K = int(K)
Student_Dict = {}
for i in range(N):
    Name, Faculty = input().split()
    if Name not in Student_Dict:
        Student_Dict[Name] = Faculty
    else:
        Student_Dict[Name] = Faculty

Guest_Dict = {}
for i in range(M):
    Guest = input().split()
    VALUE = set()
    if Guest[0] not in Guest_Dict:
        for j in Guest[1:]:
            Place = Student_Dict[j]
            VALUE.add(Place)
        Guest_Dict[Guest[0]] = VALUE
    else:
        for j in Guest[1:]:
            Place = Student_Dict[j]
            VALUE.add(Place)
        Guest_Dict[Guest[0]] = VALUE

#print(Student_Dict)
#print(Guest_Dict)

Target_List = []
for i in range(K):
    Target = input().split()
    Temp = list([])
    for i in Target:
        Temp.append(Guest_Dict[i])
                            
    Target_List.append(Temp)

#print(Target_List)

Result = []
for i in range(len(Target_List)):
    if len(Target_List[i]) == 2:
        Result.append(Target_List[i][0].intersection(Target_List[i][1]))
    else:
        JOIN = Target_List[i][0].intersection(Target_List[i][1])
        LIST = Target_List[i][2:]
        for i in LIST:
            JOIN = JOIN.intersection(i)
            
        if JOIN == set():
            Result.append({'None'})
        else:
            Result.append(JOIN)

for i in Result:
    LIST = list(i)
    LIST.sort()
    for j in range(len(LIST)):
        if j != len(LIST) - 1:
            print(LIST[j], end=" ")
        else:
            print(LIST[j])

for i in Result:
    LIST = list(i)
    LIST.sort()
    for j in range(len(LIST)):
        if j != len(LIST) - 1:
            print(LIST[j], end=" ")
        else:
            print(LIST[j])
# 1681088, 2022-11-12 11:18:33, PPP- (75%)

N, M, K = input().split()
N = int(N)
M = int(M)
K = int(K)
Student_Dict = {}
for i in range(N):
    Name, Faculty = input().split()
    if Name not in Student_Dict:
        Student_Dict[Name] = Faculty
    else:
        Student_Dict[Name] = Faculty

Guest_Dict = {}
for i in range(M):
    Guest = input().split()
    VALUE = set()
    if Guest[0] not in Guest_Dict:
        for j in Guest[1:]:
            Place = Student_Dict[j]
            VALUE.add(Place)
        Guest_Dict[Guest[0]] = VALUE
    else:
        for j in Guest[1:]:
            Place = Student_Dict[j]
            VALUE.add(Place)
        Guest_Dict[Guest[0]] = VALUE

#print(Student_Dict)
#print(Guest_Dict)

Target_List = []
for i in range(K):
    Target = input().split()
    Temp = list([])
    for i in Target:
        Temp.append(Guest_Dict[i])
                            
    Target_List.append(Temp)

#print(Target_List)

Result = []
for i in range(len(Target_List)):
    if len(Target_List[i]) == 2:
        Result.append(Target_List[i][0].intersection(Target_List[i][1]))
    else:
        JOIN = Target_List[i][0].intersection(Target_List[i][1])
        LIST = Target_List[i][2:]
        for i in LIST:
            JOIN = JOIN.intersection(i)
            
        if JOIN == set():
            Result.append({'None'})
        else:
            Result.append(JOIN)

for i in Result:
    LIST = list(i)
    LIST.sort()
    for j in range(len(LIST)):
        if j != len(LIST) - 1:
            print(LIST[j], end=" ")
        else:
            print(LIST[j])
# 1681218, 2022-11-12 11:21:41, PPP- (75%)

N, M, K = input().split()
N = int(N)
M = int(M)
K = int(K)
Student_Dict = {}
for i in range(N):
    Name, Faculty = input().split()
    if Name not in Student_Dict:
        Student_Dict[Name] = Faculty
    else:
        Student_Dict[Name] = Faculty

Guest_Dict = {}
for i in range(M):
    Guest = input().split()
    VALUE = set()
    if Guest[0] not in Guest_Dict:
        for j in Guest[1:]:
            Place = Student_Dict[j]
            VALUE.add(Place)
        Guest_Dict[Guest[0]] = VALUE
    else:
        for j in Guest[1:]:
            Place = Student_Dict[j]
            VALUE.add(Place)
        Guest_Dict[Guest[0]] = VALUE

#print(Student_Dict)
#print(Guest_Dict)

Target_List = []
for i in range(K):
    Target = input().split()
    Temp = list([])
    for i in Target:
        Temp.append(Guest_Dict[i])
                            
    Target_List.append(Temp)

#print(Target_List)

Result = []
for i in range(len(Target_List)):
    if len(Target_List[i]) == 2:
        Result.append(Target_List[i][0].intersection(Target_List[i][1]))
    else:
        JOIN = Target_List[i][0].intersection(Target_List[i][1])
        LIST = Target_List[i][2:]
        for i in LIST:
            JOIN = JOIN.intersection(i)
            
        if JOIN == set():
            Result.append({'None'})
        else:
            Result.append(JOIN)

for i in Result:
    LIST = list(i)
    LIST.sort()
    for j in range(len(LIST)):
        if j != len(LIST) - 1:
            print(LIST[j], end=" ")
        else:
            print(LIST[j])

6530201421
# 1679501, 2022-11-12 10:13:31, -PPP (75%)

N=input().split()
for i in range(len(N)):
    N[i]=int(N[i])

#อยู่คณะอะไรบ้าง
All_data={}
for i in range(N[0]):
    name,fac=input().split()
    if fac not in All_data:
        All_data[name]=fac

#แขกคนนัั้นเป็นแขกใครบ้าง
Ipeople={}
for i in range(N[1]):
    data=input().strip().split()
    Cak=data[0]
    Ipeople[Cak]=set()
    for student in data[1::]:
        Ipeople[Cak].add(student) 
            
       
#ต้องไปคณะไหนบ้าง
for i in range(N[2]):
    data=input().split()
    results=[]
    for person in data: #เปลี่ยนแขก
        result1=set()
        if person in Ipeople:
            for student in Ipeople[person]: 
                if student in All_data:
                    if not ({All_data[student]}.issubset(result1)):
                        result1.add(All_data[student])
            results.append(result1)
  
    New_results=results[0]
    for fac in results:
        New_results=New_results.intersection(fac)
    if len(New_results)==0:
        print(None)
    else:
        print (" ".join([i for i in sorted(New_results)]))
# 1680895, 2022-11-12 11:13:05, -PPP (75%)

N=input().split()
for i in range(len(N)):
    N[i]=int(N[i])

#อยู่คณะอะไรบ้าง
All_data={}
for i in range(N[0]):
    name,fac=input().split()
    if fac not in All_data:
        All_data[name]=fac

#แขกคนนัั้นเป็นแขกใครบ้าง
Ipeople={}
for i in range(N[1]):
    data=input().strip().split()
    Cak=data[0]
    Ipeople[Cak]=set()
    for student in data[1::]:
        Ipeople[Cak].add(student) 
            
       
#ต้องไปคณะไหนบ้าง
for i in range(N[2]):
    data=input().split()
    results=[]
    for person in data: #เปลี่ยนแขก
        result1=set()
        if person in Ipeople:
            for student in Ipeople[person]: 
                if student in All_data:
                    if not ({All_data[student]}.issubset(result1)):
                        result1.add(All_data[student])
            results.append(result1)
  
    New_results=results[0]
    for fac in results:
        New_results=New_results.intersection(fac)
    if len(New_results)==0:
        print(None)
    else:
        print (" ".join([i for i in sorted(New_results)]).strip())
# 1681658, 2022-11-12 11:30:04, -PPP (75%)

N=input().split()
for i in range(len(N)):
    N[i]=int(N[i])

#อยู่คณะอะไรบ้าง
All_data={}
for i in range(N[0]):
    name,fac=input().split()
    if fac not in All_data:
        All_data[name]=fac

#แขกคนนัั้นเป็นแขกใครบ้าง
Ipeople={}
for i in range(N[1]):
    data=input().strip().split()
    Cak=data[0]
    Ipeople[Cak]=set()
    for student in data[1::]:
        Ipeople[Cak].add(student) 
            
       
#ต้องไปคณะไหนบ้าง
for i in range(N[2]):
    data=input().split()
    results=[]
    for person in data: #เปลี่ยนแขก
        result1=set()
        if person in Ipeople:
            for student in Ipeople[person]: 
                if student in All_data:
                    if not ({All_data[student]}.issubset(result1)):
                        result1.add(All_data[student])
            results.append(result1)
  
    New_results=results[0]
    for fac in results:
        New_results=New_results.intersection(fac)
    if len(New_results)==0:
        print("None")
    else:
        print (" ".join([i for i in sorted(New_results)]).strip())

6530204321
# 1679593, 2022-11-12 10:19:15, PPP- (75%)

N,M,K = [int(i) for i in input().split()]
d={}
for i in range(N):
    name,k = input().split()
    if name not in d:
        d[name] = [k]
ds={}
for i in range(M):
    people=input().split()
    c=[]
    k = people[0]
    people = people[1:]
    for x in people:
        if k not in ds:
            ds[k] = d[x]
        else:
            ds[k].extend(d[x])
for i in range(K):
    people = input().split()
    for i in people:
        if i in ds:
            x=set(ds[i])
            break
    for i in people:
        x=x.intersection(ds[i])
    if x == set():
        print('None')
    else:
        p =[]
        for i in sorted(x):
            p.append(i)
        print(' '.join(p))
        
    
        
    
    
        
            
        
            

# 1679615, 2022-11-12 10:20:27, PPP- (75%)

N,M,K = [int(i) for i in input().split()]
d={}
for i in range(N):
    name,k = input().split()
    if name not in d:
        d[name] = [k]
ds={}
for i in range(M):
    people=input().split()
    c=[]
    k = people[0]
    people = people[1:]
    for x in people:
        if k not in ds:
            ds[k] = d[x]
        else:
            ds[k].extend(d[x])
for i in range(K):
    people = input().split()
    for i in people:
        if i in ds:
            c=set(ds[i])
            break
    for i in people:
        c=c.intersection(ds[i])
    if c == set():
        print('None')
    else:
        p =[]
        for i in sorted(c):
            p.append(i)
        print(' '.join(p))
        
    
        
    
    
        
            
        
            

# 1679634, 2022-11-12 10:21:27, PPP- (75%)

N,M,K = [int(i) for i in input().split()]
d={}
for i in range(N):
    name,k = input().split()
    if name not in d:
        d[name] = [k]
ds={}
for i in range(M):
    people=input().split()
    c=[]
    k = people[0]
    people = people[1:]
    for x in people:
        if k not in ds:
            ds[k] = d[x]
        else:
            ds[k].extend(d[x])
for i in range(K):
    people = input().split()
    for i in people:
        if i in ds:
            c=set(ds[i])
            break
    for i in people:
        if i in ds:
            c=c.intersection(ds[i])
    if c == set():
        print('None')
    else:
        p =[]
        for i in sorted(c):
            p.append(i)
        print(' '.join(p))
        
    
        
    
    
        
            
        
            


6532114921
# 1678918, 2022-11-12 09:42:17, PPP- (75%)

a ,b ,c = input().split()
graduate = dict()
for i in range(int(a)):
    name ,faculty = input().split()
    graduate[name] = faculty

relative = dict()
for i in range(int(b)):
    inp = input().split()
    name = inp[0]; inp = inp[1:]
    x = set(graduate[e] for e in inp)
    relative[name] = x

for i in range(int(c)):
    inp = input().split()
    for i in range(len(inp)-1):
        x = relative[inp[i]].intersection(relative[inp[i+1]])

    if len(x) == 0: print("None")
    else:
        x1 = list(x)
        x1.sort()
        print(' '.join(x1))
# 1680069, 2022-11-12 10:40:05, PPP- (75%)

a ,b ,c = input().split()
graduate = dict()
for i in range(int(a)):
    name ,faculty = input().split()
    graduate[name] = faculty

relative = dict()
for i in range(int(b)):
    inp = input().split()
    name = inp[0]; inp = inp[1:]
    x = set(graduate[e] for e in inp)
    relative[name] = x

for i in range(int(c)):
    inp = input().split()
    for j in range(len(inp)-1):
        x = relative[inp[j]].intersection(relative[inp[j+1]])

    if len(x) == 0: print("None")
    else:
        x1 = list(x)
        x1.sort()
        print(' '.join(x1))
# 1680377, 2022-11-12 10:54:02, PPP- (75%)

a ,b ,c = input().split()
graduate = dict()
for i in range(int(a)):
    name ,faculty = input().split()
    graduate[name] = faculty

relative = dict()
for i in range(int(b)):
    inp = input().split()
    name = inp[0]; inp1 = inp[1:]
    x = set(graduate[e] for e in inp1)
    relative[name] = x

for i in range(int(c)):
    inp = input().split()
    for j in range(len(inp)-1):
        x = relative[inp[j]].intersection(relative[inp[j+1]])

    if len(x) == 0: print("None")
    else:
        x1 = list(x)
        x1.sort()
        print(' '.join(x1))



6531808621
# 1680066, 2022-11-12 10:39:59, ---- (0%)

n,m,k = input().split()
print(n)
name = dict()
visit = dict()
for i in range(int(n)):
    data1 = input().split()
    name[data1[0]] = data1[1]
for i in range(int(m)):
    data2 = input().split()
    visit[data2[0]] = data2[1:]
for i in range(int(k)):
    data3 = input().split()
    #print(data3)
    pool2 = []
    pool3 = []
    for e in data3:
        pool = visit[e]
        #print(pool)
        for p in pool:    
            pool2.append(name[p])
        pool3.append(pool2)
        pool2 = []
    
    #print(pool3)
    n = 0
    e = set(pool3[0])
    out = []
    for summ in e:
            for pop in range(len(data3)-1):
                if summ in set(pool3[pop+1]):
                    n += 1
            if n == len(data3)-1:
                #print(summ)
                n = 0
                out.append(summ)
            else:
                out.append('None')
    print(out[0])
# 1680079, 2022-11-12 10:40:41, PP-- (50%)

n,m,k = input().split()
name = dict()
visit = dict()
for i in range(int(n)):
    data1 = input().split()
    name[data1[0]] = data1[1]
for i in range(int(m)):
    data2 = input().split()
    visit[data2[0]] = data2[1:]
for i in range(int(k)):
    data3 = input().split()
    #print(data3)
    pool2 = []
    pool3 = []
    for e in data3:
        pool = visit[e]
        #print(pool)
        for p in pool:    
            pool2.append(name[p])
        pool3.append(pool2)
        pool2 = []
    
    #print(pool3)
    n = 0
    e = set(pool3[0])
    out = []
    for summ in e:
            for pop in range(len(data3)-1):
                if summ in set(pool3[pop+1]):
                    n += 1
            if n == len(data3)-1:
                #print(summ)
                n = 0
                out.append(summ)
            else:
                out.append('None')
    print(out[0])
# 1680628, 2022-11-12 11:03:53, PPP- (75%)

n,m,k = input().split()
name = dict()
visit = dict()
for i in range(int(n)):
    data1 = input().split()
    name[data1[0]] = data1[1]
for i in range(int(m)):
    data2 = input().split()
    visit[data2[0]] = data2[1:]
for i in range(int(k)):
    data3 = input().split()
    #print(data3)
    pool2 = []
    pool3 = []
    for e in data3:
        pool = visit[e]
        #print(pool)
        for p in pool:    
            pool2.append(name[p])
        pool3.append(pool2)
        pool2 = []
    
    #print(pool3)
    n = 0
    e = pool3[0]
    #print(e)
    out = []
    for summ in e:
            for pop in range(len(data3)-1):
                if summ in set(pool3[pop+1]):
                    n += 1
            if n == len(data3)-1:
                #print(summ)
                n = 0
                out.append(summ)
            else:
                out.append('None')
                n = 0
    out = sorted(set(out))
    #print(out[::-1])
    out = out[::-1]
    outj = []
    if out[0] == 'None':
        print('None')
    else:
        for ans in out:
            if ans != 'None':
                outj.append(ans)
                outj = sorted(outj)
        print(' '.join(outj))
                
                
        
    

    


6230098921
# 1679287, 2022-11-12 10:02:16, PPP- (75%)

a = input().strip().split()
n,m,k = int(a[0]),int(a[1]),int(a[2])
nbandit = {}
for i in range(n) :
    b = input().strip().split()
    nbandit[b[0]] = b[1]
nk = {}
for i in range(m) :
    c = input().strip().split()
    nk[c[0]] = c[1:]
for j in nk :
    for i in range(len(nk[j])) :
        nk[j][i] = nbandit[nk[j][i]]
result = []
for i in range(k) :
    d = input().strip().split()
    for e in d :
        result.append(set(nk[e]))
    for i in range(len(result)-1) :
        output = result[i].intersection(result[i+1])
    outputt = list(output)
    if len(outputt) == 0 :
        print('None')
    else :
        print(' '.join(sorted(outputt)))
    result = []
    output = {}
    outputt = []
# 1680940, 2022-11-12 11:14:57, PPP- (75%)

a = input().strip().split()
n,m,k = int(a[0]),int(a[1]),int(a[2])
nbandit = {}
for i in range(n) :
    b = input().strip().split()
    nbandit[b[0]] = b[1]
nk = {}
for i in range(m) :
    c = input().strip().split()
    nk[c[0]] = c[1:]
for j in nk :
    for i in range(len(nk[j])) :
        nk[j][i] = nbandit[nk[j][i]]
result = []
kiki = []
outputtt = []
for i in range(k) :
    d = input().strip().split()
    for e in d :
        result.append(set(nk[e]))
    for i in range(len(result)-1) :
        output = result[i].intersection(result[i+1])
    outputt = list(output)
    if len(outputt) == 0 :
        print('None')
    else :
        for k in outputt :
            kiki.append([k[0],k])
        for c in sorted(kiki) :
            outputtt.append(c[1])
        print(' '.join(sorted(outputtt)))
    result = []
    output = {}
    outputt = []
    kiki = []
    outputtt = []

6431120321
# 1679476, 2022-11-12 10:12:40, PPP- (75%)

def check(u):
    o = []
    for i in u:
        x = set()
        if i in kek :
            for e in kek[i] :
                if e in stu:
                    x.add(stu[e])
        o.append(x)
    c = set()
    for i in range(len(o)-1) :
        c = o[i].copy()
        c = o[i].intersection(o[i+1])
        
    return c
#-----------------------------------------------
N , M , K = input().split()
c = 0
stu = {}
while c != int(N):
    x , y = input().split()
    stu[x] = y
    c += 1
c = 0
kek = {}
while c != int(M):
    x = input().split()
    kek[x[0]] = x[1:]
    c += 1
C = 0
while C != int(K):
    c = input().split()
    if len(check(c)) != 0 :
        for i in sorted(check(c)):
            print(i)
    else:
        print('None')
    C += 1
    

    
      

# 1679509, 2022-11-12 10:13:57, PPP- (75%)

def check(u):
    o = []
    for i in u:
        x = set()
        if i in kek :
            for e in kek[i] :
                if e in stu:
                    x.add(stu[e])
        o.append(x)
    c = set()
    for i in range(len(o)-1) :
        c = o[i].copy()
        c = o[i].intersection(o[i+1])
        
    return c
#-----------------------------------------------
N , M , K = input().split()
c = 0
stu = {}
while c != int(N):
    x , y = input().split()
    stu[x] = y
    c += 1
c = 0
kek = {}
while c != int(M):
    x = input().split()
    kek[x[0]] = x[1:]
    c += 1
C = 0
while C != int(K):
    c = input().split()
    if len(check(c)) != 0 :
        v = ""
        for i in sorted(check(c)):
            v += i+" "
        print(v)
    else:
        print('None')
    C += 1
    

    
      


6530060221
# 1679822, 2022-11-12 10:29:12, xPP- (50%)

x = input().split()

faculty_name = {}
facult_blank = {}
visit_name = {}

faculty_visit = {}

faculty_visitt = {}

for i in range (int(x[0])):
    data = input().split()
    if data[1] not in faculty_name:
        faculty_name[(data[0])] = data[1]
    else :
        faculty_name[(data[0])] += (data[0])

for i in range (int(x[1])):
    data = input().split()
    visit_name[data[0]] = set()
    for j in range (1 , len(data)):
        visit_name[data[0]].add(data[j])
        
for i in visit_name:
    for j in visit_name[i]:
        if i not in faculty_visit:
            faculty_visit[i] = {faculty_name[j]}
        else:
            faculty_visit[i].add(faculty_name[j])

for i in faculty_visit:
    for j in faculty_visit[i]:
        if j not in faculty_visitt:
            faculty_visitt[j] = {i}
        else:
            faculty_visitt[j].add(i)

for i in range (int(x[2])):
    data = input().split()
    tempo = []
    for j in faculty_visitt:
        if data[0] in faculty_visitt[j] and data[1] in faculty_visitt[j]:
            tempo.append(j)
    tempo.sort()
    if len(tempo) >0:
        print(" ".join(tempo))
    else:
        print("None")
        

# 1679913, 2022-11-12 10:32:24, xPPP (75%)

x = input().split()

faculty_name = {}
facult_blank = {}
visit_name = {}

faculty_visit = {}

faculty_visitt = {}

for i in range (int(x[0])):
    data = input().split()
    if data[1] not in faculty_name:
        faculty_name[(data[0])] = data[1]
    else :
        faculty_name[(data[0])] += (data[0])

for i in range (int(x[1])):
    data = input().split()
    visit_name[data[0]] = set()
    for j in range (1 , len(data)):
        visit_name[data[0]].add(data[j])
        
for i in visit_name:
    for j in visit_name[i]:
        if i not in faculty_visit:
            faculty_visit[i] = {faculty_name[j]}
        else:
            faculty_visit[i].add(faculty_name[j])

for i in faculty_visit:
    for j in faculty_visit[i]:
        if j not in faculty_visitt:
            faculty_visitt[j] = {i}
        else:
            faculty_visitt[j].add(i)

for i in range (int(x[2])):
    data = input().split()
    tempo = []
    for j in faculty_visitt:
        a = True
        for k in data:
            if k not in  faculty_visitt[j]:
                a = False
        if a== True:
            tempo.append(j)
    tempo.sort()
    if len(tempo) >0:
        print(" ".join(tempo))
    else:
        print("None")
        


6530101321
# 1679119, 2022-11-12 09:53:32, PP-- (50%)

data1 = {}
data2 = {}

n = input().split()
N, M, K = int(n[0]), int(n[1]), int(n[2])

for i in range(N) :
    x, y = input().split()
    data1[x] = y

for i in range(M) :
    x = input().split()
    data2[x[0]] = set()
    for name in x[1:] :
        if data1[name] not in data2[x[0]] :
            data2[x[0]].add(data1[name])

for i in range(K) :
    x = input().split()
    for i in range(len(x)-1) :
        form = data2[x[i]]&data2[x[i+1]]
    if form != set() :
        final = []
        for x in form :
            final.append(x)
        print(" ".join(final))
    else : print("None")
# 1679171, 2022-11-12 09:56:14, PPP- (75%)

data1 = {}
data2 = {}

n = input().split()
N, M, K = int(n[0]), int(n[1]), int(n[2])

for i in range(N) :
  x, y = input().split()
  data1[x] = y

for i in range(M) :
  x = input().split()
  data2[x[0]] = set()
  for name in x[1:] :
    if data1[name] not in data2[x[0]] :
      data2[x[0]].add(data1[name])

for i in range(K) :
  x = input().split()
  for i in range(len(x)-1) :
    form = data2[x[i]]&data2[x[i+1]]
  if form != set() :
    final = []
    for x in form :
      final.append(x)
    final.sort()
    print(" ".join(final))
  else : print("None")

6530171221
# 1679782, 2022-11-12 10:27:39, xPPP (75%)

x = [int(i) for i in input().split()]
fac = dict()
for j in range(x[0]):
    name,faculty = input().split()
    if faculty not in fac:
        fac[name] = faculty
    #else:fac[faculty].append(name)
kak = dict()
for k in range(x[1]):
    meet = input().split()
    kak[meet[0]] = [l for l in meet[1:]]
def too(n,l):
    g = set()
    for fi in l:
        g.add(fac[fi])
    return g
goto = []
for z in range(x[2]):
    together = input().split()
    gotogo = set()
    for y in together:
        if len(gotogo) == 0:
            gotogo = too(y,kak[y])
        else: gotogo = gotogo.intersection(too(y,kak[y]))
    goto.append(gotogo)
for final in goto :
    if len(final) != 0:
        print(' '.join(sorted(list(final))))
    else: print('None')
# 1681543, 2022-11-12 11:28:36, xPPP (75%)

x = [int(i) for i in input().split()]
fac = dict()
for j in range(x[0]):
    name,faculty = input().split()
    if faculty not in fac:
        fac[name] = faculty
    #else:fac[faculty].append(name)
kak = dict()
for k in range(x[1]):
    meet = input().split()
    kak[meet[0]] = [l for l in meet[1:]]
def too(l):
    g = set()
    for fi in l:
        g.add(fac[fi])
    return g
goto = []
for z in range(x[2]):
    together = input().split()
    gotogo = set()
    for y in together:
        if len(gotogo) == 0:
            gotogo = too(kak[y])
        else: gotogo = gotogo.intersection(too(kak[y]))
    goto.append(gotogo)
for final in goto :
    if len(final) != 0:
        print(' '.join(sorted(list(final))))
    else: print('None')

6530193021
# 1680605, 2022-11-12 11:03:10, P-P- (50%)

a,b,c = input().split()
d = {}
for i in range(int(a)) :
    name , fac = input().split()
    d[name] = fac
k = []
for i in range((int(b))) :
    k.append(input().split())
real = []
for i in range((int(c))) :
    real.append(input().split())




for i in range(len(k)) :
    for j in range(1,len(k[i])) :
        for e in d :
            if k[i][j] == e :
                k[i][j] = d[e]
                
new = {}
for i in range(len(k)) :
    new[k[i][0]] = set(k[i][1:])
for i in range(len(real)) :
    for j in range(len(real[i])) :
        for e in new :
            if real[i][j] == e :
                real[i][j] = new[e]
s = []
for i in range(len(real)) :
    for j in range(1,len(real[i])) :
        inter = real[i][j].intersection(real[i][j-1])
    if len(inter) == 0 :
        s.append('None')
    s.append(inter)
for i in range(len(s)) :
    print(' '.join(sorted(list(s[i]))))


    


        
                

    

# 1680804, 2022-11-12 11:09:51, PPP- (75%)

a,b,c = input().split()
d = {}
for i in range(int(a)) :
    name , fac = input().split()
    d[name] = fac
k = []
for i in range((int(b))) :
    k.append(input().split())
real = []
for i in range((int(c))) :
    real.append(input().split())




for i in range(len(k)) :
    for j in range(1,len(k[i])) :
        for e in d :
            if k[i][j] == e :
                k[i][j] = d[e]
                
new = {}
for i in range(len(k)) :
    new[k[i][0]] = set(k[i][1:])
for i in range(len(real)) :
    for j in range(len(real[i])) :
        for e in new :
            if real[i][j] == e :
                real[i][j] = new[e]
s = []
for i in range(len(real)) :
    for j in range(1,len(real[i])) :
        inter = real[i][j].intersection(real[i][j-1])
    if len(inter) == 0 :
        s.append(['None'])
    s.append(inter)
for i in range(len(s)) :
    if len(s[i]) != 1 :
        print(' '.join(sorted(list(s[i]))))
    else :
        print(''.join(list(s[i])))


    


        
                

    


6231129921
# 1679651, 2022-11-12 10:22:09, PPP- (75%)

x = [int(e) for e in input().split()]
N = x[0]
K = x[1]
M = x[2]
c = 1
d = {} # {faculty : {nisit} }
d_in = {}  #{nisit : facul }
while c<= N:
    name,facul = input().split()
    if facul not in d:
        d[facul] = {name}
    else:
        d[facul].add(name)
    d_in[name] = facul
    c+=1

c=1
g = {} # { แขก: {นิสิต}}
while c<=K:
    y = input().split()
    guess = y[0]
    ni = set(y[1:])
    g[guess] = set(ni)
    c+=1
 
 
final = {} # {guess :{facul}}
for k,v in g.items(): # v = {นิสิต, }
    for e in v: # e = นิสิต
        if k not in final:
            final[k] = set()
        final[k].add(d_in[e])
    
c = 1        
while c<=M:
    z = input().split()
    for i in range(len(z)-1):
        seta = final[z[i]]
        setb = final[z[i+1]]
        ansset = seta & setb
    if len(ansset) == 0:
        ans = 'None'
        print(ans)
    else:
        A = [e for e in ansset]
        A.sort()
        print(' '.join(A))
    c+=1

  
  

6530048821
# 1680425, 2022-11-12 10:55:22, PPP- (75%)

N,M,K = [int(x) for x in input().split()]
nisit = {} #{nisit: faculty}
for i in range(N):
    n = input().split()
    nisit[n[0]] = n[1]
guest = {} #{guest: [target]}
for i in range(M):
    m = input().split()
    guest[m[0]] = [m[1]]
    if len(m) > 2:
        for e in range(len(m)-2):
            guest[m[0]].append(m[e+2])
for i in range(K):
    faculty = {} #{guest: {faculty}}
    k = input().split()
    for g in k:
        temp = set()
        for target in guest[g]:
            temp.add(nisit[target])
        faculty[g] = temp
    for gu1 in faculty:
        for gu2 in faculty:
            if gu1 == gu2:
                pass
            else:
                x = faculty[gu1].intersection(faculty[gu2])
    x = list(x)
    if len(x) > 0:
        print(' '.join(sorted(x)))
    else:
        print('None')
    faculty.clear()
    


6530094621
# 1680602, 2022-11-12 11:03:07, PPP- (75%)

n, m, k = [int(x) for x in input().split()]

sep = {}
for i in range(n) :
    st, fac = input().split()
    if fac not in sep :
        sep[fac] = [st]
    else :
        sep[fac].append(st)
#print(sep)

v_nisit = {}
for i in range(m) :
    data = input().split()
    name = data[0]
    nisit = []
    for c in data[1:] :
        nisit.append(c)
        v_nisit[name] = nisit
#print(v_nisit)

def where(name,d_v,d_sep) :
    out = {}
    for c in name :
        for k in d_v :
            if c == k :
                for st in d_v[k] :
                    for q in d_sep :
                        if st in d_sep[q] :
                            if c not in out :
                                out[c] = {q}
                            elif c in out :
                                out[c].add(q)
    return out

def together(l_name,d) :
    out = set()
    all_fac = set()
    for k in d :
        for q in d[k] :
            all_fac.add(q)    
    for c in l_name :
        #print(d[k])
        #print(out)
        out = all_fac&d[c]
        all_fac = out
    return out
        
        

for i in range(k) :
    l_name = input().split()
    go = where(l_name,v_nisit,sep)
    ans = ''
    #print(go)
    #for k in go :
    #print(together(l_name,go))
    if together(l_name,go) == set() :
        print('None')
    elif together(l_name,go) != set() :
        out = []
        for c in together(l_name,go) :
            out.append(c)
            ans = ans+c+' '
        print(ans.strip())
            
        
        
    
    
        
        
    


6530106521
# 1679346, 2022-11-12 10:05:36, PPP- (75%)

x = input().split()
faculty = {}  
for i in range(int(x[0])):
    n,f = input().split()
    faculty[n] = f
guest = {}
for e in range(int(x[1])):
    y = input()
    y = y.split()
    if y[0] not in guest: guest[y[0]] = []
    guest[y[0]] += y[1:]
listguest = []
for o in range(int(x[2])):
    z = input()
    z = z.split()
    listguest = [g for g in z]
    fac = {}
    for k in listguest:
        for p in guest[k]:
            if k not in fac: fac[k] = set()
            fac[k].add(faculty[p])
    same = []
    for v in fac.values():
        same.append(v)
    s = set()
    for q in range(len(same)-1):
        s = same[q].intersection(same[q+1])
    if len(s) == 0:
        print('None')
    else:
        s = list(s)
        s.sort()
        print(' '.join(s))


6530199921
# 1679788, 2022-11-12 10:27:53, PPP- (75%)

n = input().strip().split()
stus = {}
knas = {}

for i in range(int(n[0])) :
    stu, kna = input().strip(). split()
    stus[stu] = kna
    if kna not in knas : knas[kna] = set()
    knas[kna].add(stu)

guests = {}
for i in range(int(n[1])) :
    x = input().strip().split()
    guest, goal = x[0], x[1:]
    guests[guest] = goal
    
for i in range(int(n[2])) :
    need = {}
    go = []
    x = input().strip().split()
    for i in range(len(x)) :
        need[x[i]] = guests[x[i]]
    for i in need :
        y = set()
        for j in need[i] :
            y.add(stus[j])
        go.append(y)
    for i in range(len(go)-1) :
        ans = go[i]
        ans = ans & go[i+1]
    if len(ans) == 0 : print('None')
    else :
        print(' '.join(sorted(ans)))

6531806321
# 1679315, 2022-11-12 10:03:41, PPP- (75%)

i=[int(e) for e in input().split()]
N=dict()
M=dict()
K=list()
for k in range(i[0]):
    x=[e for e in input().split()]
    N[x[0]]=x[1]
for k in range(i[1]):
    x=[e for e in input().split()]
    M[x[0]]=list(x[1:])
for k in range(i[2]):
    x=[e for e in input().split()]
    K.append(x)
lcong=list()
for e in K:
    l=list()
    for s in e:
        l.append(list(M[s]))
    lcong.append(l)
lcongf=list()
for e in lcong:
    l1=list()
    for s in e:
        s1=set()
        for w in s:
            s1.add(N[w])
        l1.append(s1)
    lcongf.append(l1)
lout=list()
for e in lcongf:
    for i in range(len(e)-1):
        x=e[i].intersection(e[i+1])
    lout.append(sorted(list(x)))
for e in lout:
    if len(e)==0:
        print('None')
    else:
        print(' '.join(e))

Max Score = 50


6530035621
# 1679457, 2022-11-12 10:11:42, P--- (25%)

# use set
x = [int(e) for e in input().split()]
a = {}
for i in range(x[0]):
    n,f = input().split()
    a[n] = f
    
b = {}    
for i in range(x[1]):
    y = input().split()
    b[y[0]] = []
    for i in range(len(y)-1):
        b[y[0]].append(a[y[i+1]])

c = {}
for i in range(x[2]):
    z = input().split()
    for e in z:
        c[e] = set(b[e])
    w = []
    for e in c:
        w.append(c[e])
    for i in range(len(w)-1):
        v = w[0] & w[i+1]
    if len(v) == 0:
        print("NONE")
    else:
        for e in v:
            print(e)
        
        
    
    
    
    
    
    
#     z = input().split()
#     for i in range(len(z)):
#         for e in b[z[i]]:
#             if a[e] not in c:
#                 c[a[e]] = [b[z[i]]]
#             else:
#                 c[a[e]].append(b[z[i]])
        
    

# 1679840, 2022-11-12 10:29:59, ---- (0%)

# use set
x = [int(e) for e in input().split()]
a = {}
for i in range(x[0]):
    n,f = input().split()
    a[n] = f
    
b = {}    
for i in range(x[1]):
    y = input().split()
    b[y[0]] = []
    for i in range(len(y)-1):
        b[y[0]].append(a[y[i+1]])

c = {}
for i in range(x[2]):
    z = input().split()
    if len(z) == 2:
        for e in z:
            c[e] = set(b[e])
        w = []
        for e in c:
            w.append(c[e])
        for i in range(len(w)-1):
            v = w[0] & w[i+1] 
        if len(v) == 0:
            print("NONE")
        else:
            for e in v:
                print(e)             
            
            
        
    #     for i in range(len(w)-1):
    #         v = w[0] & w[i+1]
    #     if len(v) == 0:
    #         print("NONE")
    #     else:
    #         for e in v:
    #             print(e)
    elif len(z) == 3:
        for e in z:
            c[e] = set(b[e])
        w = []
        for e in c:
            w.append(c[e])
        for i in range(len(w)-2):
            v = w[0] & w[i+1] & w[i+2]
        if len(v) == 0:
            print("NONE")
        else:
            for e in v:
                print(e)
            
    
    
    
    
    
    
#     z = input().split()
#     for i in range(len(z)):
#         for e in b[z[i]]:
#             if a[e] not in c:
#                 c[a[e]] = [b[z[i]]]
#             else:
#                 c[a[e]].append(b[z[i]])
        
    

# 1679863, 2022-11-12 10:30:37, ---- (0%)

# use set
x = [int(e) for e in input().split()]
a = {}
for i in range(x[0]):
    n,f = input().split()
    a[n] = f
    
b = {}    
for i in range(x[1]):
    y = input().split()
    b[y[0]] = []
    for i in range(len(y)-1):
        b[y[0]].append(a[y[i+1]])

c = {}
for i in range(x[2]):
    z = input().split()
    if len(z) == 2:
        for e in z:
            c[e] = set(b[e])
        w = []
        for e in c:
            w.append(c[e])
        for i in range(len(w)-1):
            v = w[0] & w[i+1] 
        if len(v) == 0:
            print("None")
        else:
            for e in v:
                print(e)             
            
            
        
    #     for i in range(len(w)-1):
    #         v = w[0] & w[i+1]
    #     if len(v) == 0:
    #         print("NONE")
    #     else:
    #         for e in v:
    #             print(e)
    elif len(z) == 3:
        for e in z:
            c[e] = set(b[e])
        w = []
        for e in c:
            w.append(c[e])
        for i in range(len(w)-2):
            v = w[0] & w[i+1] & w[i+2]
        if len(v) == 0:
            print("None")
        else:
            for e in v:
                print(e)
            
    
    
    
    
    
    
#     z = input().split()
#     for i in range(len(z)):
#         for e in b[z[i]]:
#             if a[e] not in c:
#                 c[a[e]] = [b[z[i]]]
#             else:
#                 c[a[e]].append(b[z[i]])
        
    

# 1679953, 2022-11-12 10:34:51, ---- (0%)

# use set
x = [int(e) for e in input().split()]
a = {}
for i in range(x[0]):
    n,f = input().split()
    a[n] = f
    
b = {}    
for i in range(x[1]):
    y = input().split()
    b[y[0]] = []
    for i in range(len(y)-1):
        b[y[0]].append(a[y[i+1]])

c = {}
for i in range(x[2]):
    z = input().split()
    v = []
    if len(z) == 2:
        for e in z:
            c[e] = set(b[e])
        w = []
        for e in c:
            w.append(c[e])
        for i in range(len(w)-1):
            l = w[0] & w[i+1]
        for e in l:
            v.append(e)
        if len(v) == 0:
            print("None")
        else:
            print("".join(v))             
            
            
        
    #     for i in range(len(w)-1):
    #         v = w[0] & w[i+1]
    #     if len(v) == 0:
    #         print("NONE")
    #     else:
    #         for e in v:
    #             print(e)
    elif len(z) == 3:
        for e in z:
            c[e] = set(b[e])
        w = []
        for e in c:
            w.append(c[e])
        for i in range(len(w)-2):
            v = w[0] & w[i+1] & w[i+2]
        if len(v) == 0:
            print("None")
        else:
            for e in v:
                print(e)
            
    
    
    
    
    
    
#     z = input().split()
#     for i in range(len(z)):
#         for e in b[z[i]]:
#             if a[e] not in c:
#                 c[a[e]] = [b[z[i]]]
#             else:
#                 c[a[e]].append(b[z[i]])
        
    

# 1679966, 2022-11-12 10:35:32, ---- (0%)

# use set
x = [int(e) for e in input().split()]
a = {}
for i in range(x[0]):
    n,f = input().split()
    a[n] = f
    
b = {}    
for i in range(x[1]):
    y = input().split()
    b[y[0]] = []
    for i in range(len(y)-1):
        b[y[0]].append(a[y[i+1]])

c = {}
for i in range(x[2]):
    z = input().split()
    v = []
    if len(z) == 2:
        for e in z:
            c[e] = set(b[e])
        w = []
        for e in c:
            w.append(c[e])
        for i in range(len(w)-1):
            l = w[0] & w[i+1]
        for e in l:
            v.append(e)
        v.sort()
        if len(v) == 0:
            print("None")
        else:
            print("".join(v))             
            
            
        
    #     for i in range(len(w)-1):
    #         v = w[0] & w[i+1]
    #     if len(v) == 0:
    #         print("NONE")
    #     else:
    #         for e in v:
    #             print(e)
    elif len(z) == 3:
        for e in z:
            c[e] = set(b[e])
        w = []
        for e in c:
            w.append(c[e])
        for i in range(len(w)-2):
            v = w[0] & w[i+1] & w[i+2]
        if len(v) == 0:
            print("None")
        else:
            for e in v:
                print(e)
            
    
    
    
    
    
    
#     z = input().split()
#     for i in range(len(z)):
#         for e in b[z[i]]:
#             if a[e] not in c:
#                 c[a[e]] = [b[z[i]]]
#             else:
#                 c[a[e]].append(b[z[i]])
        
    

# 1679987, 2022-11-12 10:36:39, ---- (0%)

# use set
x = [int(e) for e in input().split()]
a = {}
for i in range(x[0]):
    n,f = input().split()
    a[n] = f
    
b = {}    
for i in range(x[1]):
    y = input().split()
    b[y[0]] = []
    for i in range(len(y)-1):
        b[y[0]].append(a[y[i+1]])

c = {}
for i in range(x[2]):
    z = input().split()
    v = []
    if len(z) == 2:
        for e in z:
            c[e] = set(b[e])
        w = []
        for e in c:
            w.append(c[e])
        for i in range(len(w)-1):
            l = w[0] & w[i+1]
        for e in l:
            v.append(e)
        v.sort()
        if len(v) == 0:
            print("None")
        else:
            print("".join(v))             
            
            
        
    #     for i in range(len(w)-1):
    #         v = w[0] & w[i+1]
    #     if len(v) == 0:
    #         print("NONE")
    #     else:
    #         for e in v:
    #             print(e)
    elif len(z) == 3:
        for e in z:
            c[e] = set(b[e])
        w = []
        for e in c:
            w.append(c[e])
        for i in range(len(w)-2):
            l = w[0] & w[i+1] & w[i+2]
        for e in l:
            v.append(e)
        v.sort()
        if len(v) == 0:
            print("None")
        else:
            print("".join(v))
            
    
    
    
    
    
    
#     z = input().split()
#     for i in range(len(z)):
#         for e in b[z[i]]:
#             if a[e] not in c:
#                 c[a[e]] = [b[z[i]]]
#             else:
#                 c[a[e]].append(b[z[i]])
        
    

# 1680041, 2022-11-12 10:38:59, P--- (25%)

# use set
x = [int(e) for e in input().split()]
a = {}
for i in range(x[0]):
    n,f = input().split()
    a[n] = f
    
b = {}    
for i in range(x[1]):
    y = input().split()
    b[y[0]] = []
    for i in range(len(y)-1):
        b[y[0]].append(a[y[i+1]])

c = {}
for i in range(x[2]):
    z = input().split()
    for e in z:
        c[e] = set(b[e])
    w = []
    for e in c:
        w.append(c[e])
    for i in range(len(w)-1):
        v = w[0] & w[i+1]
    if len(v) == 0:
        print("None")
    else:
        for e in v:
            print(e)
        
        
    
    
    
    
    
    
#     z = input().split()
#     for i in range(len(z)):
#         for e in b[z[i]]:
#             if a[e] not in c:
#                 c[a[e]] = [b[z[i]]]
#             else:
#                 c[a[e]].append(b[z[i]])

# 1680092, 2022-11-12 10:41:25, P-P- (50%)

# use set
x = [int(e) for e in input().split()]
a = {}
for i in range(x[0]):
    n,f = input().split()
    a[n] = f
    
b = {}    
for i in range(x[1]):
    y = input().split()
    b[y[0]] = []
    for i in range(len(y)-1):
        b[y[0]].append(a[y[i+1]])

c = {}
for i in range(x[2]):
    z = input().split()
    for e in z:
        c[e] = set(b[e])
    w = []
    for e in c:
        w.append(c[e])
    v = []
    for i in range(len(w)-1):
        l = w[0] & w[i+1]
    for e in l:
        v.append(e)
    v.sort()
    if len(v) == 0:
        print("None")
    else:
        print(" ".join(v))
        
        
    
    
    
    
    
    
#     z = input().split()
#     for i in range(len(z)):
#         for e in b[z[i]]:
#             if a[e] not in c:
#                 c[a[e]] = [b[z[i]]]
#             else:
#                 c[a[e]].append(b[z[i]])

# 1680102, 2022-11-12 10:41:53, ---- (0%)

# use set
x = [int(e) for e in input().split()]
a = {}
for i in range(x[0]):
    n,f = input().split()
    a[n] = f
    
b = {}    
for i in range(x[1]):
    y = input().split()
    b[y[0]] = []
    for i in range(len(y)-1):
        b[y[0]].append(a[y[i+1]])

c = {}
for i in range(x[2]):
    z = input().split()
    v = []
    if len(z) == 2:
        for e in z:
            c[e] = set(b[e])
        w = []
        for e in c:
            w.append(c[e])
        for i in range(len(w)-1):
            l = w[0] & w[i+1]
        for e in l:
            v.append(e)
        v.sort()
        if len(v) == 0:
            print("None")
        else:
            print(" ".join(v))             
            
            
        
    #     for i in range(len(w)-1):
    #         v = w[0] & w[i+1]
    #     if len(v) == 0:
    #         print("NONE")
    #     else:
    #         for e in v:
    #             print(e)
    elif len(z) == 3:
        for e in z:
            c[e] = set(b[e])
        w = []
        for e in c:
            w.append(c[e])
        for i in range(len(w)-2):
            l = w[0] & w[i+1] & w[i+2]
        for e in l:
            v.append(e)
        v.sort()
        if len(v) == 0:
            print("None")
        else:
            print(" ".join(v))
            
    
    
    
    
    
    
#     z = input().split()
#     for i in range(len(z)):
#         for e in b[z[i]]:
#             if a[e] not in c:
#                 c[a[e]] = [b[z[i]]]
#             else:
#                 c[a[e]].append(b[z[i]])
        
    

# 1680227, 2022-11-12 10:47:47, ---- (0%)

# use set
x = [int(e) for e in input().split()]
a = {}
for i in range(x[0]):
    n,f = input().split()
    a[n] = f
    
b = {}    
for i in range(x[1]):
    y = input().split()
    b[y[0]] = []
    for i in range(len(y)-1):
        b[y[0]].append(a[y[i+1]])

c = {}
for i in range(x[2]):
    z = input().split()
    for e in z:
        c[e] = set(b[e])
    w = []
    for e in c:
        w.append(c[e])
    v = []
    for i in range(len(w)-1):
        l = w[0] & w[i+1]
        v.append(l)
    g = []
    g.sort()
    if set() not in v:
        for e in v:
            for k in e:
                g.append(k)
    if len(g) == 0:
        print("None")
    else:
        print(" ".join(g))
        
        
    
    
    
    
    
    
#     z = input().split()
#     for i in range(len(z)):
#         for e in b[z[i]]:
#             if a[e] not in c:
#                 c[a[e]] = [b[z[i]]]
#             else:
#                 c[a[e]].append(b[z[i]])

# 1680984, 2022-11-12 11:16:03, -P-- (25%)

x = [int(e) for e in input().split()]
a = {}
for i in range(x[0]):
    n,f = input().split()
    a[n] = f
    
b = {}    
for i in range(x[1]):
    y = input().split()
    b[y[0]] = []
    for i in range(len(y)-1):
        b[y[0]].append(a[y[i+1]])
        
c = {}
for i in range(x[2]):
    p = []
    z = input().split()
    for e in z:
        for k in b[e]:
            if k not in c:
                c[k] = set()
                c[k].add(e)
            else:
                c[k].add(e)
    found = False
    for e in c:
        if len(c[e]) == len(z):
            p.append(e)
            found = True
    p.sort()
    if len(p)>0:
        print(" ".join(p))
        
    if found == False:
        print("None")
        
    

# 1681278, 2022-11-12 11:23:21, P-P- (50%)

# use set
x = [int(e) for e in input().split()]
a = {}
for i in range(x[0]):
    n,f = input().split()
    a[n] = f
    
b = {}    
for i in range(x[1]):
    y = input().split()
    b[y[0]] = []
    for i in range(len(y)-1):
        b[y[0]].append(a[y[i+1]])

c = {}
for i in range(x[2]):
    z = input().split()
    for e in z:
        c[e] = set(b[e])
    w = []
    for e in c:
        w.append(c[e])
    v = []
    for i in range(len(w)-1):
        l = w[0] & w[i+1]
    for e in l:
        v.append(e)
    v.sort()
    if len(v) == 0:
        print("None")
    else:
        print(" ".join(v))
        
        
    
    
    
    
    
    
#     z = input().split()
#     for i in range(len(z)):
#         for e in b[z[i]]:
#             if a[e] not in c:
#                 c[a[e]] = [b[z[i]]]
#             else:
#                 c[a[e]].append(b[z[i]])

6530044221
# 1679843, 2022-11-12 10:30:03, PP-- (50%)

stu = {}
d = {}
a = input().split()
for i in range(int(a[0])) :
    s = input().split()
    stu[s[0]] = s[1]
for i in range(int(a[1])):
    k = input().split()
    o = []
    for j in k[1:] :
        o.append(stu[j])
    
    d[k[0]] = set(o)
s = ""
for i in range(int(a[2])):
    k = input().split()
    for j in range(len(k)-1):
        s = d[k[j]].intersection(d[k[j+1]])
    if s == set():
        print("None")
    else :
        print(list(s)[0])
# 1679926, 2022-11-12 10:33:02, P-P- (50%)

stu = {}
d = {}
a = input().split()
for i in range(int(a[0])) :
    s = input().split()
    stu[s[0]] = s[1]
for i in range(int(a[1])):
    k = input().split()
    o = []
    for j in k[1:] :
        o.append(stu[j])
    
    d[k[0]] = set(o)
ans = []
s = ""
for i in range(int(a[2])):
    k = input().split()
    for j in range(len(k)-1):
        s = d[k[j]].intersection(d[k[j+1]])
    
    if s == set():
        print("None")
        break
    else :
        ans.append(list(s))
    print(" ".join(sorted(ans[0])))
# 1679936, 2022-11-12 10:33:45, P-P- (50%)

stu = {}
d = {}
a = input().split()
for i in range(int(a[0])) :
    s = input().split()
    stu[s[0]] = s[1]
for i in range(int(a[1])):
    k = input().split()
    o = []
    for j in k[1:] :
        o.append(stu[j])
    
    d[k[0]] = set(o)
ans = []
s = ""
for i in range(int(a[2])):
    k = input().split()
    for j in range(len(k)-1):
        s = d[k[j]].intersection(d[k[j+1]])
    
    if s == set():
        print("None")
        break
    else :
        ans.append(list(s))
        print(" ".join(sorted(ans[0])))
# 1679938, 2022-11-12 10:33:49, P-P- (50%)

stu = {}
d = {}
a = input().split()
for i in range(int(a[0])) :
    s = input().split()
    stu[s[0]] = s[1]
for i in range(int(a[1])):
    k = input().split()
    o = []
    for j in k[1:] :
        o.append(stu[j])
    
    d[k[0]] = set(o)
ans = []
s = ""
for i in range(int(a[2])):
    k = input().split()
    for j in range(len(k)-1):
        s = d[k[j]].intersection(d[k[j+1]])
    
    if s == set():
        print("None")
        break
    else :
        ans.append(list(s))
        print(" ".join(sorted(ans[0])))
# 1680733, 2022-11-12 11:07:30, P-P- (50%)

stu = {}
d = {}
a = input().split()
for i in range(int(a[0])) :
    s = input().split()
    stu[s[0]] = s[1]
for i in range(int(a[1])):
    k = input().split()
    o = []
    for j in k[1:] :
        o.append(stu[j])
    
    d[k[0]] = set(o)
ans = []

for i in range(int(a[2])):
    s = ""
    k = input().split()
    for j in range(len(k)-1):
        s = d[k[j]].intersection(d[k[j+1]])
    
    if s == set():
        print("None")
        break
    else :
        ans.append(list(s))
        print(" ".join(sorted(ans[0])))
# 1680879, 2022-11-12 11:12:31, P-P- (50%)

stu = {}
d = {}
a = input().split()
for i in range(int(a[0])) :
    s = input().split()
    stu[s[0]] = s[1]
for i in range(int(a[1])):
    k = input().split()
    o = []
    for j in k[1:] :
        o.append(stu[j])
    
    d[k[0]] = set(o)
ans = []
for i in range(int(a[2])):
    s = ""
    k = input().split()
    for j in range(len(k)-1):
        s = d[k[j]].intersection(d[k[j+1]])
    
    if s == set():
        print("None")
        break
    else :
        ans.append(list(s))
        print(" ".join(sorted(ans[0])))
# 1680901, 2022-11-12 11:13:21, P-P- (50%)

stu = {}
d = {}
a = input().split()
for i in range(int(a[0])) :
    s = input().split()
    stu[s[0]] = s[1]
for i in range(int(a[1])):
    k = input().split()
    o = []
    for j in k[1:] :
        o.append(stu[j])
    
    d[k[0]] = set(o)
ans = []
for i in range(int(a[2])):
    s = ""
    k = input().split()
    for j in range(len(k)-1):
        s = d[k[j]].intersection(d[k[j+1]])
    
    if s == set():
        print("None")
    else :
        ans.append(list(s))
        print(" ".join(sorted(ans[0])))
# 1680917, 2022-11-12 11:13:56, P-P- (50%)

stu = {}
d = {}
a = input().split()
for i in range(int(a[0])) :
    s = input().split()
    stu[s[0]] = s[1]
for i in range(int(a[1])):
    k = input().split()
    o = []
    for j in k[1:] :
        o.append(stu[j])
    
    d[k[0]] = set(o)
ans = []
for i in range(int(a[2])):
    s = ""
    k = input().split()
    for j in range(len(k)-1):
        s = d[k[j]].intersection(d[k[j+1]])
    
    if s == set():
        print("None")
    else :
        ans.append(list(s))
        print(" ".join(sorted(ans[0])))
# 1681134, 2022-11-12 11:19:43, P-P- (50%)

stu = {}
d = {}
a = input().split()
for i in range(int(a[0])) :
    s = input().split()
    stu[s[0]] = s[1]
for i in range(int(a[1])):
    k = input().split()
    o = set()
    for j in k[1:] :
        o.add(stu[j])
    
    d[k[0]] = set(o)
ans = []

for i in range(int(a[2])):
    s = ""
    k = input().split()
    for j in range(len(k)-1):
        s = d[k[j]].intersection(d[k[j+1]])
    
    if s == set():
        print("None")
    else :
        ans.append(list(s))
        print(" ".join(sorted(ans[0])))
# 1681227, 2022-11-12 11:21:55, P-P- (50%)

stu = {}
d = {}
a = input().split()
for i in range(int(a[0])) :
    s = input().split()
    stu[s[0]] = s[1]
for i in range(int(a[1])):
    k = input().split()
    o = set()
    for j in k[1:] :
        o.add(stu[j])
    
    d[k[0]] = set(o)
ans = []

for i in range(int(a[2])):
    s = ""
    k = input().split()
    for j in range(len(k)):
        if s == "" :
            s = d[k[j]].intersection(d[k[j+1]])
        else :
            s = s.intersection(d[k[j]])
    
    if s == set():
        print("None")
    else :
        ans.append(list(s))
        print(" ".join(sorted(ans[0])))
# 1681320, 2022-11-12 11:24:16, P-P- (50%)

stu = {}
d = {}
a = input().split()
for i in range(int(a[0])) :
    s = input().split()
    stu[s[0]] = s[1]
for i in range(int(a[1])):
    k = input().split()
    o = set()
    for j in k[1:] :
        o.add(stu[j])
    
    d[k[0]] = set(o)
ans = []

for i in range(int(a[2])):
    s = ""
    k = input().split()
    for j in range(len(k)):
        if s == "" :
            s = d[k[j]].intersection(d[k[j+1]])
        else :
            s = s.intersection(d[k[j]])
    
    if s == set():
        print("None")
    else :
        ans.append(list(s))
        if len(ans[0]) == 1:
            print(ans[0][0])
        else :
            print(" ".join(sorted(ans[0])))
# 1681570, 2022-11-12 11:29:10, P-P- (50%)

stu = {}
d = {}
a = input().split()
for i in range(int(a[0])) :
    s = input().split()
    stu[s[0]] = s[1]
for i in range(int(a[1])):
    k = input().split()
    o = set()
    for j in k[1:] :
        o.add(stu[j])
    
    d[k[0]] = set(o)
ans = []

for i in range(int(a[2])):
    s = ""
    k = input().split()
    for j in range(len(k)):
        if s == "" :
            s = d[k[j]].intersection(d[k[j+1]])
        s = s.intersection(d[k[j]])
    
    if s == set():
        print("None")
    else :
        ans.append(list(s))
        if len(ans[0]) == 1:
            print(ans[0][0])
        else :
            print(" ".join(sorted(ans[0])))

6530090021
# 1680045, 2022-11-12 10:39:11, ---- (0%)

a = input().split() ; fa={} ;fa2={} ;re=[];ee=[]
for i in range(int(a[0])):
    A = input().split()
    ee.append(A)
    fa[A[0]] = A[1]
    
for i in range(int(a[1])):
    aa = input().split()
    fa2[aa[0]] = aa[1:]
for i in range(int(a[2])):
    aa = input().split()
    fa3={}
    for o in ee:
        fa3[o[1]] = 0
    for i in aa:
        for k in fa2[i]:
            fa3[fa[k]]=fa3[fa[k]]+1
    for i in fa3:
        if fa3[i] >= len(aa):
            re.append(fa3)
        else:
            re.append('None')
for i in re:
    print(i)
            
            

        

# 1680505, 2022-11-12 10:59:07, PP-- (50%)

a = input().split() ; fa={} ;fa2={} ;re=[];ee=[]

for i in range(int(a[0])):
    A = input().split()
    ee.append(A)
    fa[A[0]] = A[1]
    
for i in range(int(a[1])):
    aa = input().split()
    fa2[aa[0]] = aa[1:]
for i in range(int(a[2])):
    aa = input().split()
    fa3={};uuu=True
    for o in ee:
        fa3[o[1]] = 0
    for i in aa:
        reee=[]
        for k in fa2[i]:
            
            if fa[k] not in reee:
                reee.append(fa[k])
                fa3[fa[k]]=fa3[fa[k]]+1
    for i in fa3:
        if fa3[i] >= len(aa):
            re.append(i)
            uuu=False
    if uuu == True:
        re.append('None')
for i in re:
    print(i)
    

            
            

        

# 1680523, 2022-11-12 11:00:00, P--- (25%)

a = input().split() ; fa={} ;fa2={} ;re=[];ee=[]

for i in range(int(a[0])):
    A = input().split()
    ee.append(A)
    fa[A[0]] = A[1]
    
for i in range(int(a[1])):
    aa = input().split()
    fa2[aa[0]] = aa[1:]
for i in range(int(a[2])):
    aa = input().split()
    fa3={};uuu=True
    for o in ee:
        fa3[o[1]] = 0
    for i in aa:
        reee=[]
        for k in fa2[i]:
            
            if fa[k] not in reee:
                reee.append(fa[k])
                fa3[fa[k]]=fa3[fa[k]]+1
    for i in fa3:
        if fa3[i] >= len(aa):
            re.append(i)
            uuu=False
    if uuu == True:
        re.append('None')
for i in re:
    print(' '.join(i))
    

            
            

        

# 1680529, 2022-11-12 11:00:09, PP-- (50%)

a = input().split() ; fa={} ;fa2={} ;re=[];ee=[]

for i in range(int(a[0])):
    A = input().split()
    ee.append(A)
    fa[A[0]] = A[1]
    
for i in range(int(a[1])):
    aa = input().split()
    fa2[aa[0]] = aa[1:]
for i in range(int(a[2])):
    aa = input().split()
    fa3={};uuu=True
    for o in ee:
        fa3[o[1]] = 0
    for i in aa:
        reee=[]
        for k in fa2[i]:
            
            if fa[k] not in reee:
                reee.append(fa[k])
                fa3[fa[k]]=fa3[fa[k]]+1
    for i in fa3:
        if fa3[i] >= len(aa):
            re.append(i)
            uuu=False
    if uuu == True:
        re.append('None')
for i in re:
    print(i)
# 1680649, 2022-11-12 11:04:26, PP-- (50%)

a = input().split() ; fa={} ;fa2={} ;re=[];ee=[]

for i in range(int(a[0])):
    A = input().split()
    ee.append(A)
    fa[A[0]] = A[1]
    
for i in range(int(a[1])):
    aa = input().split()
    fa2[aa[0]] = aa[1:]
for i in range(int(a[2])):
    aa = input().split()
    fa3={};uuu=True
    for o in ee:
        fa3[o[1]] = 0
    for i in aa:
        reee=[]
        for k in fa2[i]:
            
            if fa[k] not in reee:
                reee.append(fa[k])
                fa3[fa[k]]=fa3[fa[k]]+1
    for i in fa3:
        if fa3[i] >= len(aa):
            re.append([i])
            uuu=False
    if uuu == True:
        re.append(['None'])
for i in re:
    for k in i:
        print(k)
    

            
            

        

# 1680723, 2022-11-12 11:07:07, PP-- (50%)

a = input().split() ; fa={} ;fa2={} ;re=[];ee=[]

for i in range(int(a[0])):
    A = input().split()
    ee.append(A)
    fa[A[0]] = A[1]
    
for i in range(int(a[1])):
    aa = input().split()
    fa2[aa[0]] = aa[1:]
for i in range(int(a[2])):
    aa = input().split()
    fa3={};uuu=True
    for o in ee:
        fa3[o[1]] = 0
    for i in aa:
        reee=[]
        for k in fa2[i]:
            
            if fa[k] not in reee:
                reee.append(fa[k])
                fa3[fa[k]]=fa3[fa[k]]+1
    for i in fa3:
        if fa3[i] >= len(aa):
            re.append([i])
            uuu=False
    if uuu == True:
        re.append(['None'])
for i in re:
    print(' '.join(i))
    

            
            

        

# 1680972, 2022-11-12 11:15:51, ---- (0%)

a = input().split() ; fa={} ;fa2={} ;re=[];ee=[]

for i in range(int(a[0])):
    A = input().split()
    ee.append(A)
    fa[A[0]] = A[1]
    
for i in range(int(a[1])):
    aa = input().split()
    fa2[aa[0]] = aa[1:]
for i in range(int(a[2])):
    aa = input().split()
    fa3={};uuu=True
    for o in ee:
        fa3[o[1]] = 0
    for i in aa:
        reee=[]
        for k in fa2[i]:
            
            if fa[k] not in reee:
                reee.append(fa[k])
                fa3[fa[k]]=fa3[fa[k]]+1
    for i in fa3:
        if fa3[i] >= len(aa):
            re.append([i])
            uuu=False
    #if uuu == True:
        #re.append(['None'])
if re !=[]:
    re.sort()
    print(re)
else:
    print('None')
    
    

            
            

        

# 1680985, 2022-11-12 11:16:04, PP-- (50%)

a = input().split() ; fa={} ;fa2={} ;re=[];ee=[]

for i in range(int(a[0])):
    A = input().split()
    ee.append(A)
    fa[A[0]] = A[1]
    
for i in range(int(a[1])):
    aa = input().split()
    fa2[aa[0]] = aa[1:]
for i in range(int(a[2])):
    aa = input().split()
    fa3={};uuu=True
    for o in ee:
        fa3[o[1]] = 0
    for i in aa:
        reee=[]
        for k in fa2[i]:
            
            if fa[k] not in reee:
                reee.append(fa[k])
                fa3[fa[k]]=fa3[fa[k]]+1
    for i in fa3:
        if fa3[i] >= len(aa):
            re.append([i])
            uuu=False
    if uuu == True:
        re.append(['None'])
for i in re:
    print(' '.join(i))
# 1681185, 2022-11-12 11:21:02, ---- (0%)

a = input().split() ; fa={} ;fa2={} ;re=[];ee=[]
l = list()
for i in range(int(a[0])):
    A = input().split()
    ee.append(A)
    fa[A[0]] = A[1]
    
for i in range(int(a[1])):
    aa = input().split()
    fa2[aa[0]] = aa[1:]
for i in range(int(a[2])):
    aa = input().split()
    fa3={};uuu=True
    for o in ee:
        fa3[o[1]] = 0
    for i in aa:
        reee=[]
        for k in fa2[i]:
            
            if fa[k] not in reee:
                reee.append(fa[k])
                fa3[fa[k]]=fa3[fa[k]]+1
    for i in fa3:
        if fa3[i] >= len(aa):
            
            l.append(i)
            
            uuu=False
    if uuu == True:
        re.append(['None'])
    else:
        re.append(l)
for i in re:
    i.sort()
    print(' '.join(i))

# 1681199, 2022-11-12 11:21:16, PP-- (50%)

a = input().split() ; fa={} ;fa2={} ;re=[];ee=[]

for i in range(int(a[0])):
    A = input().split()
    ee.append(A)
    fa[A[0]] = A[1]
    
for i in range(int(a[1])):
    aa = input().split()
    fa2[aa[0]] = aa[1:]
for i in range(int(a[2])):
    aa = input().split()
    fa3={};uuu=True
    for o in ee:
        fa3[o[1]] = 0
    for i in aa:
        reee=[]
        for k in fa2[i]:
            
            if fa[k] not in reee:
                reee.append(fa[k])
                fa3[fa[k]]=fa3[fa[k]]+1
    for i in fa3:
        if fa3[i] >= len(aa):
            re.append([i])
            uuu=False
    if uuu == True:
        re.append(['None'])
for i in re:
    print(' '.join(i))
# 1681316, 2022-11-12 11:24:09, ---- (0%)

a = input().split() ; fa={} ;fa2={} ;re=[];ee=[]
l = list()
for i in range(int(a[0])):
    A = input().split()
    ee.append(A)
    fa[A[0]] = A[1]
    
for i in range(int(a[1])):
    aa = input().split()
    fa2[aa[0]] = aa[1:]
for i in range(int(a[2])):
    aa = input().split()
    fa3={};uuu=True
    for o in ee:
        fa3[o[1]] = 0
    for i in aa:
        reee=[]
        for k in fa2[i]:
            
            if fa[k] not in reee:
                reee.append(fa[k])
                fa3[fa[k]]=fa3[fa[k]]+1
    for i in fa3:
        if fa3[i] >= len(aa):
            
            l.append(i)
            
            uuu=False
    if uuu == True:
        re.append(['None'])
    else:
        re.append(l)
for i in re:
    i.sort()
    print(' '.join(i))

# 1681328, 2022-11-12 11:24:22, PP-- (50%)

a = input().split() ; fa={} ;fa2={} ;re=[];ee=[]

for i in range(int(a[0])):
    A = input().split()
    ee.append(A)
    fa[A[0]] = A[1]
    
for i in range(int(a[1])):
    aa = input().split()
    fa2[aa[0]] = aa[1:]
for i in range(int(a[2])):
    aa = input().split()
    fa3={};uuu=True
    for o in ee:
        fa3[o[1]] = 0
    for i in aa:
        reee=[]
        for k in fa2[i]:
            
            if fa[k] not in reee:
                reee.append(fa[k])
                fa3[fa[k]]=fa3[fa[k]]+1
    for i in fa3:
        if fa3[i] >= len(aa):
            re.append([i])
            uuu=False
    if uuu == True:
        re.append(['None'])
for i in re:
    print(' '.join(i))

6530102021
# 1679652, 2022-11-12 10:22:09, ---- (0%)

a = input()
n,m,k = a.split()
n = int(n)
m = int(m)
k = int(k)
t = 0
de = {}
de2 = []
yad = {}
pi = []
same = set()
z = ''
while t < n:
    name, deg = input().split()
    de[name] = deg
    t += 1
t = 0
while t < m:
    n = input().split()
    yad[n[0]] = [n[1:]]
    t += 1
t = 0
while t < k:
    n = input().split()
    for i in n:
        for e in yad[i]:
            for h in e:
                pi.append(de[h])
            de2.append(pi)
            pi = []
    for i in range(1):
        for e in de2[0]:
            for a in range(len(de2)-1):
                if e in de2[a+1]:
                    z = True
                else:
                    z = False
                    break
            if z == True:
                same.add(e)
            else:
                pass
    if len(same) != 0:
        print(same)
    else:
        print('None')
                    
    same = set()
    t += 1


    

    


# 1679808, 2022-11-12 10:28:42, xxxx (0%)

a = input()
n,m,k = a.split()
n = int(n)
m = int(m)
k = int(k)
t = 0
de = {}
de2 = []
yad = {}
pi = []
same = []
z = ''
ans = []
while t < n:
    name, deg = input().split()
    de[name] = deg
    t += 1
t = 0
while t < m:
    n = input().split()
    yad[n[0]] = [n[1:]]
    t += 1
t = 0
while t < k:
    n = input().split()
    for i in n:
        for e in yad[i]:
            for h in e:
                pi.append(de[h])
            de2.append(pi)
            pi = []
    for i in range(1):
        for e in de2[0]:
            for a in range(len(de2)-1):
                if e in de2[a+1]:
                    z = True
                else:
                    z = False
                    break
            if z == True:
                same.append(e)
            else:
                pass
    if len(same) != 0:
        a = sorted(same)
        a = sorted(set(a))
        
        ans.append(a)
    else:
        ans.append('None')
                    
    same = set()
    t += 1

for i in ans:
    print(i)
    

    


# 1679848, 2022-11-12 10:30:12, xxxx (0%)

a = input()
n,m,k = a.split()
n = int(n)
m = int(m)
k = int(k)
t = 0
de = {}
de2 = []
yad = {}
pi = []
same = []
z = ''
ans = []
while t < n:
    name, deg = input().split()
    de[name] = deg
    t += 1
t = 0
while t < m:
    n = input().split()
    yad[n[0]] = [n[1:]]
    t += 1
t = 0
while t < k:
    n = input().split()
    for i in n:
        for e in yad[i]:
            for h in e:
                pi.append(de[h])
            de2.append(pi)
            pi = []
    for i in range(1):
        for e in de2[0]:
            for a in range(len(de2)-1):
                if e in de2[a+1]:
                    z = True
                else:
                    z = False
                    break
            if z == True:
                same.append(e)
            else:
                pass
    if len(same) != 0:
        a = sorted(same)
        a = sorted(set(a))
        
        ans.append(a)
    else:
        ans.append(['None'])
                    
    same = set()
    t += 1

for i in ans:
    print(' '.join(i))
    

    


# 1679895, 2022-11-12 10:31:37, xxxx (0%)

a = input()
n,m,k = a.split()
n = int(n)
m = int(m)
k = int(k)
t = 0
de = {}
de2 = []
yad = {}
pi = []
same = []
z = ''
ans = []
while t < n:
    name, deg = input().split()
    de[name] = deg
    t += 1
t = 0
while t < m:
    n = input().split()
    yad[n[0]] = [n[1:]]
    t += 1
t = 0
while t < k:
    n = input().split()
    for i in n:
        for e in yad[i]:
            for h in e:
                pi.append(de[h])
            de2.append(pi)
            pi = []
    for i in range(1):
        for e in de2[0]:
            for a in range(len(de2)-1):
                if e in de2[a+1]:
                    z = True
                else:
                    z = False
                    break
            if z == True:
                same.append(e)
            else:
                pass
    if len(same) != 0:
        a = sorted(same)
        a = sorted(set(a))
        
        ans.append(a)
    else:
        ans.append(['None'])
                    
    same = set()
    t += 1

for i in ans:
    print(' '.join(i))
# 1679958, 2022-11-12 10:35:15, xxxx (0%)

a = input()
n,m,k = a.split()
n = int(n)
m = int(m)
k = int(k)
t = 0
de = {}
de2 = []
yad = {}
pi = []
same = []
z = ''
ans = []
while t < n:
    name, deg = input().split()
    de[name] = deg
    t += 1
t = 0
while t < m:
    n = input().split()
    yad[n[0]] = [n[1:]]
    t += 1
t = 0
while t < k:
    n = input().split()
    for i in n:
        for e in yad[i]:
            for h in e:
                pi.append(de[h])
            de2.append(pi)
            pi = []
    for i in range(1):
        for e in de2[0]:
            for a in range(len(de2)-1):
                if e in de2[a+1]:
                    z = True
                else:
                    z = False
                    break
            if z == True:
                same.append(e)
            else:
                pass
    if len(same) != 0:
        a = sorted(same)
        a = sorted(set(a))
        
        ans.append(a)
    else:
        ans.append(['None'])
                    
    same = set()
    t += 1

for i in ans:
    print(' '.join(i))
    

    


# 1679971, 2022-11-12 10:35:38, xxxx (0%)

a = int(input())
t = 0
team1 = []
country = []
co = {}
same = []
while t < a:
    team, cun = input().split()
    team1.append(team)
    country.append(cun)
    co[team] = cun
    t += 1

a = input()
while a != 'q':
    a = a.split()
    for i in a:
        if i in co:
            if co[i] in country:
                if co[i] not in same:
                    same.append(co[i])
                else:
                    print('Not OK')
            
            else:
                print('Not OK')
        else:
            print('Not OK')
        
    b = set(same)
    if len(b) == len(a):
        print('OK')
    same = []
    a = input()

            

    


# 1680082, 2022-11-12 10:40:47, xxxx (0%)

a = input()
n,m,k = a.split()
n = int(n)
m = int(m)
k = int(k)
t = 0
de = {}
de2 = []
yad = {}
pi = []
same = []
z = ''
ans = []
while t < n:
    name, deg = input().split()
    de[name] = deg
    t += 1
t = 0
while t < m:
    n = input().split()
    yad[n[0]] = [n[1:]]
    t += 1
t = 0
while t < k:
    n = input().split()
    for i in n:
        if i in yad:
            for e in yad[i]:
                for h in e:
                    pi.append(de[h])
                de2.append(pi)
                pi = []
    for i in range(1):
        for e in de2[0]:
            for a in range(len(de2)-1):
                if e in de2[a+1]:
                    z = True
                else:
                    z = False
                    break
            if z == True:
                same.append(e)
            else:
                pass
    if len(same) != 0:
        a = sorted(same)
        a = sorted(set(a))
        
        ans.append(a)
    else:
        ans.append(['None'])
                    
    same = set()
    t += 1

for i in ans:
    print(' '.join(i))
    

    


# 1680244, 2022-11-12 10:49:08, xxxx (0%)

a = input()
n,m,k = a.split()
n = int(n)
m = int(m)
k = int(k)
t = 0
de = {}
de2 = []
yad = {}
pi = []
same = []
z = ''
ans = []
while t < n:
    name, deg = input().split()
    de[name] = deg
    t += 1
t = 0
while t < m:
    n = input().split()
    yad[n[0]] = [n[1:]]
    t += 1
t = 0
while t < k:
    n = input().split()
    for i in n:
        if i in yad:
            for e in yad[i]:
                for h in e:
                    pi.append(de[h])
                de2.append(pi)
                pi = []
    for i in range(len(de2)):
        for e in de2[i]:
            for a in range(len(de2)):
                if e in de2[a]:
                    z = True
                else:
                    z = False
                    break
            if z == True:
                same.append(e)
            else:
                pass
    if len(same) != 0:
        a = sorted(same)
        a = sorted(set(a))
        
        ans.append(a)
    else:
        ans.append(['None'])
                    
    same = set()
    t += 1

for i in ans:
    print(' '.join(i))
    

    


# 1680496, 2022-11-12 10:58:54, xxxx (0%)

a = input()
n,m,k = a.split()
n = int(n)
m = int(m)
k = int(k)
t = 0
de = {}
de2 = []
yad = {}
pi = []
same = []
z = ''
ans = []
while t < n:
    name, deg = input().split()
    de[name] = deg
    t += 1
t = 0
while t < m:
    n = input().split()
    yad[n[0]] = [n[1:]]
    t += 1
t = 0
while t < k:
    n = input().split()
    for i in n:
        if i in yad:
            for e in yad[i]:
                for h in e:
                    pi.append(de[h])
                de2.append(pi)
                pi = []
    for i in range(len(de2)):
        for e in de2[i]:
            for a in range(len(de2)-1):
                if e in de2[a+1]:
                    z = True
                else:
                    z = False
                    break
            if z == True:
                same.append(e)
                
        
    if len(same) != 0:
        a = sorted(same)
        a = sorted(set(a))
        
        ans.append(a)
    else:
        ans.append(['None'])
                    
    same = set()
    t += 1

for i in ans:
    print(' '.join(i))
    

    


# 1680962, 2022-11-12 11:15:35, P-P- (50%)

a = input()
n,m,k = a.split()
n = int(n)
m = int(m)
k = int(k)
t = 0
de = {}
de2 = []
yad = {}
pi = []
same = []
z = ''
ans = []
while t < n:
    name, deg = input().split()
    de[name] = deg
    t += 1
t = 0
while t < m:
    n = input().split()
    yad[n[0]] = [n[1:]]
    t += 1
t = 0
while t < k:
    n = input().split()
    for i in n:
        if i in yad:
            for e in yad[i]:
                for h in e:
                    pi.append(de[h])
                de2.append(pi)
                pi = []
    for i in range(len(de2)):
        for e in de2[i]:
                p = 0
                while p != len(de2):
                    if e in de2[p]:
                        z = True
                        p += 1
                    else:
                        z = False
                        break
                if z == True:
                    same.append(e)
                
                    
                
        
    if len(same) != 0:
        a = sorted(same)
        a = sorted(set(a))
        
        ans.append(a)
    else:
        ans.append(['None'])
                    
    same = []
    t += 1

for i in ans:
    print(' '.join(i))
    

    


# 1681682, 2022-11-12 11:30:18, P-P- (50%)

a = input()
n,m,k = a.split()
n = int(n)
m = int(m)
k = int(k)
t = 0
de = {}
de2 = []
yad = {}
pi = []
same = []
z = ''
ans = []
while t < n:
    name, deg = input().split()
    de[name] = deg
    t += 1
t = 0
while t < m:
    n = input().split()
    yad[n[0]] = [n[1:]]
    t += 1
t = 0
while t < k:
    n = input().split()
    for i in n:
        if i in yad:
            for e in yad[i]:
                for h in e:
                    pi.append(de[h])
                de2.append(pi)
                pi = []
    for i in range(len(de2)):
        for e in de2[i]:
                p = 0
                while p != len(de2):
                    if e in de2[p]:
                        z = True
                        p += 1
                    else:
                        z = False
                        break
                if z == True:
                    same.append(e)
                
                    
                
        
    if len(same) != 0:
        a = sorted(same)
        a = sorted(set(a))
        
        ans.append(a)
    else:
        ans.append(['None'])
                    
    same = []
    t += 1

for i in ans:
    print(' '.join(i))
    

    



6530145021
# 1680559, 2022-11-12 11:01:40, compilation error (0%)

a1,a2,a3 = [int(e) for e in input().strip().split()]
sdic = {}
kdic = {}
ans = []
for i in range(a1):
    stu,fac = input().strip().split()
    if stu not in sdic:
        sdic[stu] = fac
for j in range(a2):
    x = input().strip().split()
    kak = [0]
    for e in x[1:]:
        if kak not in kdic:
            kdic[kak] = {sdic[e]}
        else:
            kdic[kak] = {sdic[e]}
for k in range(a3):
    y = input().strip().split()
    a = kdic[y[0]]
    for e in y[1:]:
        a& = kdic[e]
    ans.append(sorted(a))
for e in ans:
    if e == []:
        print('None')
    else:
        print(" ".join(e))

# 1680563, 2022-11-12 11:01:47, xxxx (0%)

a1,a2,a3 = [int(e) for e in input().strip().split()]
sdic = {}
kdic = {}
ans = []
for i in range(a1):
    stu,fac = input().strip().split()
    if stu not in sdic:
        sdic[stu] = fac
for j in range(a2):
    x = input().strip().split()
    kak = [0]
    for e in x[1:]:
        if kak not in kdic:
            kdic[kak] = {sdic[e]}
        else:
            kdic[kak] = {sdic[e]}
for k in range(a3):
    y = input().strip().split()
    a = kdic[y[0]]
    for e in y[1:]:
        a = kdic[e]
    ans.append(sorted(a))
for e in ans:
    if e == []:
        print('None')
    else:
        print(" ".join(e))
# 1680615, 2022-11-12 11:03:25, xxxx (0%)

a1,a2,a3 = [int(e) for e in input().strip().split()]
sdic = {}
kdic = {}
ans = []
for i in range(a1):
    stu,fac = input().strip().split()
    if stu not in sdic:
        sdic[stu] = fac
for j in range(a2):
    x = input().strip().split()
    kak = [0]
    for e in x[1:]:
        if kak not in kdic:
            kdic[kak] = {sdic[e]}
        else:
            kdic[kak] = {sdic[e]}
for k in range(a3):
    y = input().strip().split()
    a = kdic[y[0]]
    for e in y[1:]:
        a&=kdic[e]
    ans.append(sorted(a))
for e in ans:
    if e == []:
        print('None')
    else:
        print(" ".join(e))
# 1680617, 2022-11-12 11:03:36, compilation error (0%)

a1,a2,a3 = [int(e) for e in input().strip().split()]
sdic = {}
kdic = {}
ans = []
for i in range(a1):
    stu,fac = input().strip().split()
    if stu not in sdic:
        sdic[stu] = fac
for j in range(a2):
    x = input().strip().split()
    kak = [0]
    for e in x[1:]:
        if kak not in kdic:
            kdic[kak] = {sdic[e]}
        else:
            kdic[kak] = {sdic[e]}
for k in range(a3):
    y = input().strip().split()
    a = kdic[y[0]]
    for e in y[1:]:
        a& = kdic[e]
    ans.append(sorted(a))
for e in ans:
    if e == []:
        print('None')
    else:
        print(" ".join(e))
# 1680661, 2022-11-12 11:04:44, compilation error (0%)

a1,a2,a3 = [int(e) for e in input().strip().split()]
sdic = {}
kdic = {}
ans = []
for i in range(a1):
    stu,fac = input().strip().split()
    if stu not in sdic:
        sdic[stu] = fac
for j in range(a2):
    x = input().strip().split()
    kak = [0]
    for e in x[1:]:
        if kak not in kdic:
            kdic[kak] = {sdic[e]}
        else:
            kdic[kak] = {sdic[e]}
for k in range(a3):
    y = input().strip().split()
    a = kdic[y[0]]
    for e in y[1:]:
        a& = kdic[e]
    ans.append(sorted(a&))
for e in ans:
    if e == []:
        print('None')
    else:
        print(" ".join(e))
# 1680684, 2022-11-12 11:05:31, compilation error (0%)

a1,a2,a3 = [int(e) for e in input().strip().split()]
sdic = {}
kdic = {}
ans = []
for i in range(a1):
    stu,fac = input().strip().split()
    if stu not in sdic:
        sdic[stu] = fac
for j in range(a2):
    x = input().strip().split()
    kak = x[0]
    for e in x[1:]:
        if kak not in kdic:
            kdic[kak] = {sdic[e]}
        else:
            kdic[kak] = {sdic[e]}
for k in range(a3):
    y = input().strip().split()
    a = kdic[y[0]]
    for e in y[1:]:
        a& = kdic[e]
    ans.append(sorted(a))
for e in ans:
    if e == []:
        print('None')
    else:
        print(" ".join(e))
# 1680731, 2022-11-12 11:07:29, PP-- (50%)

a1,a2,a3 = [int(e) for e in input().strip().split()]
sdic = {}
kdic = {}
ans = []
for i in range(a1):
    stu,fac = input().strip().split()
    if stu not in sdic:
        sdic[stu] = fac
for j in range(a2):
    x = input().strip().split()
    kak = x[0]
    for e in x[1:]:
        if kak not in kdic:
            kdic[kak] = {sdic[e]}
        else:
            kdic[kak] = {sdic[e]}
for k in range(a3):
    y = input().strip().split()
    a = kdic[y[0]]
    for e in y[1:]:
        a&=kdic[e]
    ans.append(sorted(a))
for e in ans:
    if e == []:
        print("None")
    else:
        print(" ".join(e))
# 1681263, 2022-11-12 11:22:51, xPxx (25%)

a1,a2,a3 = [int(e) for e in input().strip().split()]
sdic = {}
kdic = {}
ans = []
for i in range(a1):
    stu,fac = input().strip().split()
    if stu not in sdic:
        sdic[stu] = fac
for j in range(a2):
    x = input().strip().split()
    kak = x[0]
    for e in x[1:]:
        if kak not in kdic:
            kdic[kak] = {sdic[e]}
        else:
            kdic[e] = {sdic[kak]}
for k in range(a3):
    y = input().strip().split()
    a = kdic[y[0]]
    for e in y[1:]:
        a&=kdic[e]
    ans.append(sorted(a))
for e in ans:
    if e == []:
        print("None")
    else:
        print(" ".join(e))
# 1681269, 2022-11-12 11:23:04, PP-- (50%)

a1,a2,a3 = [int(e) for e in input().strip().split()]
sdic = {}
kdic = {}
ans = []
for i in range(a1):
    stu,fac = input().strip().split()
    if stu not in sdic:
        sdic[stu] = fac
for j in range(a2):
    x = input().strip().split()
    kak = x[0]
    for e in x[1:]:
        if kak not in kdic:
            kdic[kak] = {sdic[e]}
        else:
            kdic[kak] = {sdic[e]}
for k in range(a3):
    y = input().strip().split()
    a = kdic[y[0]]
    for e in y[1:]:
        a&=kdic[e]
    ans.append(sorted(a))
for e in ans:
    if e == []:
        print("None")
    else:
        print(" ".join(e))
# 1681447, 2022-11-12 11:26:50, compilation error (0%)

a1,a2,a3 = [int(e) for e in input().strip().split()]
sdic = {}
kdic = {}
ans = []
for i in range(a1):
    stu,fac = input().strip().split()
    if stu not in sdic:
        sdic[stu] = fac
for j in range(a2):
    x = input().strip().split()
    kak = x[0]
    for e in x[1:]:
        if kak not in kdic:
            kdic[kak] = {sdic[e]}
        else:
            kdic[kak] = {sdic[e]}
for k in range(a3):
    y = input().strip().split()
    a = kdic[y[0]]
    for e in y[1:]:
        a&=kdic[e]
    ans.append(sorted(a&))
for e in ans:
    if e == []:
        print("None")
    else:
        print(" ".join(e))
# 1681463, 2022-11-12 11:27:05, PP-- (50%)

a1,a2,a3 = [int(e) for e in input().strip().split()]
sdic = {}
kdic = {}
ans = []
for i in range(a1):
    stu,fac = input().strip().split()
    if stu not in sdic:
        sdic[stu] = fac
for j in range(a2):
    x = input().strip().split()
    kak = x[0]
    for e in x[1:]:
        if kak not in kdic:
            kdic[kak] = {sdic[e]}
        else:
            kdic[kak] = {sdic[e]}
for k in range(a3):
    y = input().strip().split()
    a = kdic[y[0]]
    for e in y[1:]:
        a&=kdic[e]
    ans.append(sorted(a))
for e in ans:
    if e == []:
        print("None")
    else:
        print(" ".join(e))

6530138621
# 1680522, 2022-11-12 10:59:57, ---- (0%)

[a,b,c] = input().split()

school = {}
for i in range(int(a)):
    [kid,place] = input().split()
    if place not in school:
        school[place] = [kid]
    else:
        school[place].append(kid)
#---------------------------------
visit = {}
for j in range(int(b)):
    x = input().split()
    for n in x[1:]:
        if x[0] not in visit:
            visit[x[0]] = [n]
        else:
            visit[x[0]].append(n)
#--------------------------------
vacation = {}
for k in visit:
    for student in visit[k]:
        for r in school:
            if student in school[r]:
                if k not in vacation:
                    vacation[k] = set([r])
                else:
                    vacation[k].add(r)
#--------------------------------
mother = list(vacation)
answer = []
for z in range(len(c)+1):
    fight = []
    where = set()
    x = input().split()
    for p in x:
        if p in mother:
            fight.append(set(vacation[p]))
    e = fight[0]
    for w in range(len(fight)-1):
        e = e.intersection(fight[w+1])
    answer.append(e)
for D in answer:
    m = sorted([D])
    for C in m:
        if C == set():
            print('None')
        else:
            print(' '.join(C))
# 1680577, 2022-11-12 11:02:17, ---- (0%)

[a,b,c] = input().split()

school = {}
for i in range(int(a)):
    [kid,place] = input().split()
    if place not in school:
        school[place] = [kid]
    else:
        school[place].append(kid)
#---------------------------------
visit = {}
for j in range(int(b)):
    x = input().split()
    for n in x[1:]:
        if x[0] not in visit:
            visit[x[0]] = [n]
        else:
            visit[x[0]].append(n)
#--------------------------------
vacation = {}
for k in visit:
    for student in visit[k]:
        for r in school:
            if student in school[r]:
                if k not in vacation:
                    vacation[k] = set([r])
                else:
                    vacation[k].add(r)
#--------------------------------
mother = list(vacation)
answer = []
for z in range(len(c)):
    fight = []
    where = set()
    x = input().split()
    for p in x:
        if p in mother:
            fight.append(set(vacation[p]))
    e = fight[0]
    for w in range(len(fight)-1):
        e = e.intersection(fight[w+1])
    answer.append(e)
for D in answer:
    m = sorted([D])
    for C in m:
        if C == set():
            print('None')
        else:
            print(' '.join(C)) 
# 1680779, 2022-11-12 11:09:02, ---- (0%)

[a,b,c] = input().split()

school = {}
for i in range(int(a)):
    [kid,place] = input().split()
    if place not in school:
        school[place] = [kid]
    else:
        school[place].append(kid)
#---------------------------------
visit = {}
for j in range(int(b)):
    x = input().split()
    for n in x[1:]:
        if x[0] not in visit:
            visit[x[0]] = [n]
        else:
            visit[x[0]].append(n)
#--------------------------------
vacation = {}
for k in visit:
    for student in visit[k]:
        for r in school:
            if student in school[r]:
                if k not in vacation:
                    vacation[k] = set([r])
                else:
                    vacation[k].add(r)
#--------------------------------
mother = list(vacation)
answer = []
for z in range(len(c)):
    fight = []
    where = set()
    x = input().split()
    for p in x:
        if p in mother:
            fight.append(set(vacation[p]))
    e = fight[0]
    for w in range(len(fight)-1):
        e = e.intersection(fight[w+1])
    answer.append(e)
#-------------------------------
for D in answer:
    m = sorted([D])
    for C in m:
        if C == set():
            print('None')
        else:
            print(' '.join(C)) 
# 1680847, 2022-11-12 11:11:19, xxxx (0%)

[a,b,c] = input().split()

school = {}
for i in range(int(a)):
    [kid,place] = input().split()
    if place not in school:
        school[place] = [kid]
    else:
        school[place].append(kid)
#---------------------------------
visit = {}
for j in range(int(b)):
    x = input().split()
    for n in x[1:]:
        if x[0] not in visit:
            visit[x[0]] = [n]
        else:
            visit[x[0]].append(n)
#--------------------------------
vacation = {}
for k in visit:
    for student in visit[k]:
        for r in school:
            if student in school[r]:
                if k not in vacation:
                    vacation[k] = set([r])
                else:
                    vacation[k].add(r)
#--------------------------------
mother = list(vacation)
answer = []
for z in range(len(int(c))):
    fight = []
    where = set()
    x = input().split()
    for p in x:
        if p in mother:
            fight.append(set(vacation[p]))
    e = fight[0]
    for w in range(len(fight)-1):
        e = e.intersection(fight[w+1])
    answer.append(e)
#-------------------------------
for D in answer:
    m = sorted([D])
    for C in m:
        if C == set():
            print('None')
        else:
            print(' '.join(C))
# 1680870, 2022-11-12 11:12:13, ---- (0%)

[a,b,c] = input().split()

school = {}
for i in range(int(a)):
    [kid,place] = input().split()
    if place not in school:
        school[place] = [kid]
    else:
        school[place].append(kid)
#---------------------------------
visit = {}
for j in range(int(b)):
    x = input().split()
    for n in x[1:]:
        if x[0] not in visit:
            visit[x[0]] = [n]
        else:
            visit[x[0]].append(n)
#--------------------------------
vacation = {}
for k in visit:
    for student in visit[k]:
        for r in school:
            if student in school[r]:
                if k not in vacation:
                    vacation[k] = set([r])
                else:
                    vacation[k].add(r)
#--------------------------------
mother = list(vacation)
answer = []
for z in range(len(c)):
    fight = []
    where = set()
    x = input().split()
    for p in x:
        if p in mother:
            fight.append(set(vacation[p]))
    e = fight[0]
    for w in range(len(fight)-1):
        e = e.intersection(fight[w+1])
    answer.append(e)
#-------------------------------
for D in answer:
    m = sorted([D])
    for C in m:
        if C == set():
            print('None')
        else:
            print(' '.join(C))
# 1680896, 2022-11-12 11:13:09, PP-- (50%)

[a,b,c] = input().split()

school = {}
for i in range(int(a)):
    [kid,place] = input().split()
    if place not in school:
        school[place] = [kid]
    else:
        school[place].append(kid)
#---------------------------------
visit = {}
for j in range(int(b)):
    x = input().split()
    for n in x[1:]:
        if x[0] not in visit:
            visit[x[0]] = [n]
        else:
            visit[x[0]].append(n)
#--------------------------------
vacation = {}
for k in visit:
    for student in visit[k]:
        for r in school:
            if student in school[r]:
                if k not in vacation:
                    vacation[k] = set([r])
                else:
                    vacation[k].add(r)
#--------------------------------
mother = list(vacation)
answer = []
for z in range(int(c)):
    fight = []
    where = set()
    x = input().split()
    for p in x:
        if p in mother:
            fight.append(set(vacation[p]))
    e = fight[0]
    for w in range(len(fight)-1):
        e = e.intersection(fight[w+1])
    answer.append(e)
#-------------------------------
for D in answer:
    m = sorted([D])
    for C in m:
        if C == set():
            print('None')
        else:
            print(' '.join(C))

6530027621
# 1679755, 2022-11-12 10:26:09, ---- (0%)

n1,n2,n3 = input().split()
nam2de = {}
de2nam = {}
for i in range(int(n1)):
    nam,dep = input().split()
    nam2de[nam] = dep
    if dep not in de2nam:
        de2nam[dep] = [nam]
    else:
        de2nam[dep].append(nam)

gusdic = {}
for e in range(int(n2)):
    x = input().split()
    gus = x[0]
    bun = x[1:]
    gusdic[gus] = bun
    
gusgo = {}
for h in gusdic:
    for l in gusdic[h]:
        if h not in gusgo:
            gusgo[h] = [nam2de[l]]
        else:
            gusgo[h].append(nam2de[l])
#print(gusgo)
ansf = []
for f in range(int(n3)):
    ans = []
    gop = [e for e in input().split()]
    for y in gop:
        ans.append(set(gusgo[y]))
    for q in range(len(ans)-1):
        kk = ans[q] & ans[q+1]
        kk = sorted(kk)
        ansf.append(kk)

for ad in ansf:
    print(' '.join(ad))
# 1680144, 2022-11-12 10:43:27, P-P- (50%)

n1,n2,n3 = input().split()
nam2de = {}
de2nam = {}
for i in range(int(n1)):
    nam,dep = input().split()
    nam2de[nam] = dep
    if dep not in de2nam:
        de2nam[dep] = [nam]
    else:
        de2nam[dep].append(nam)

gusdic = {}
for e in range(int(n2)):
    x = input().split()
    gus = x[0]
    bun = x[1:]
    gusdic[gus] = bun
    
gusgo = {}
for h in gusdic:
    for l in gusdic[h]:
        if h not in gusgo:
            gusgo[h] = [nam2de[l]]
        else:
            gusgo[h].append(nam2de[l])
#print(gusgo)
ansf = []
ansff = []
for f in range(int(n3)):
    ans = []
    gop = [e for e in input().split()]
    for y in gop:
        ansf.append(set(gusgo[y]))
        
    anss =ansf[0]
    for z in range(len(ansf)):
        anss = anss & ansf[z]
    anss = sorted(anss)
    ansff.append(anss)

for ad in ansff:
    print(' '.join(ad))
# 1680205, 2022-11-12 10:46:39, P-P- (50%)

n1,n2,n3 = input().split()
nam2de = {}
de2nam = {}
for i in range(int(n1)):
    nam,dep = input().split()
    nam2de[nam] = dep
    if dep not in de2nam:
        de2nam[dep] = [nam]
    else:
        de2nam[dep].append(nam)

gusdic = {}
for e in range(int(n2)):
    x = input().split()
    gus = x[0]
    bun = x[1:]
    gusdic[gus] = bun
    
gusgo = {}
for h in gusdic:
    for l in gusdic[h]:
        if h not in gusgo:
            gusgo[h] = [nam2de[l]]
        else:
            gusgo[h].append(nam2de[l])
#print(gusgo)
ansf = []
ansff = []
for f in range(int(n3)):
    ans = []
    gop = [e for e in input().split()]
    for y in gop:
        ansf.append(set(gusgo[y]))
        
    anss =ansf[0]
    for z in range(len(ansf)):
        anss = anss & ansf[z]
    if len(anss) == 0:
        ansff.append('None')
    else:
        anss = sorted(anss)
        ansff.append(anss)

for ad in ansff:
    print(' '.join(ad))
# 1680235, 2022-11-12 10:48:21, P-P- (50%)

n1,n2,n3 = input().split()
nam2de = {}
de2nam = {}
for i in range(int(n1)):
    nam,dep = input().split()
    nam2de[nam] = dep
    if dep not in de2nam:
        de2nam[dep] = [nam]
    else:
        de2nam[dep].append(nam)

gusdic = {}
for e in range(int(n2)):
    x = input().split()
    gus = x[0]
    bun = x[1:]
    gusdic[gus] = bun
    
gusgo = {}
for h in gusdic:
    for l in gusdic[h]:
        if h not in gusgo:
            gusgo[h] = [nam2de[l]]
        else:
            gusgo[h].append(nam2de[l])
#print(gusgo)
ansf = []
ansff = []
for f in range(int(n3)):
    ans = []
    gop = [e for e in input().split()]
    for y in gop:
        ansf.append(set(gusgo[y]))
        
    anss =ansf[0]
    for z in range(len(ansf)):
        anss = anss & ansf[z]
    if len(anss) == 0:
        ansff.append(['None'])
    else:
        anss = sorted(anss)
        ansff.append(anss)

for ad in ansff:
    print(' '.join(ad))
# 1681406, 2022-11-12 11:26:04, P-P- (50%)

n1,n2,n3 = input().split()
nam2de = {}
de2nam = {}
if int(n1) != 0:
    for i in range(int(n1)):
        nam,dep = input().split()
        nam2de[nam] = dep
        if dep not in de2nam:
            de2nam[dep] = [nam]
        else:
            de2nam[dep].append(nam)


    gusdic = {}
    for e in range(int(n2)):
        x = input().split()
        gus = x[0]
        bun = x[1:]
        gusdic[gus] = bun
    
    gusgo = {}
    for h in gusdic:
        for l in gusdic[h]:
            if h not in gusgo:
                gusgo[h] = [nam2de[l]]
            else:
                gusgo[h].append(nam2de[l])
#print(gusgo)
    ansf = []
    ansff = []
    for f in range(int(n3)):
        ans = []
        gop = [e for e in input().split()]
        for y in gop:
            ansf.append(set(gusgo[y]))
        
        anss =ansf[0]
        for z in range(len(ansf)):
            anss = anss & ansf[z]
        if len(anss) == 0:
            ansff.append(['None'])
        else:
            anss = sorted(anss)
            ansff.append(anss)

    for ad in ansff:
        print(' '.join(ad))
else:
    print('None')

6531106721
# 1680681, 2022-11-12 11:05:28, -P-- (25%)

N,M,K = (int(e) for e in input().split())
kana={} #{bd:f}
for i in range(N):
    bandit, f= input().split()
    kana[bandit]=f
maha={} #{kak:[bandits]}
for j in range(M):
    kakmaha= input().split()
    maha[kakmaha[0]]= kakmaha[1:]
for k in range(K):
    sonjai= input().split()
    mai={} #{kak:[kn1,kn2],kak:[bd1,bd2]}
    for x in (sonjai):
        mai[x]=maha[x]
    maimak={}
    for q in mai:
        for s in mai[q]:
            if q in maimak:
                maimak[q].append(kana[s])
            elif q not in maimak:
                maimak[q]=[kana[s]]

    eek=[]
    for y in maimak:
        if len(eek)==0:
            for z in maimak[y]:
                eek.append(z)
        else:
            for v in eek:
                if v not in maimak[y]:
                    eek.remove(v)

    if eek!=[]:
        print("".join(sorted(eek)))
    else:
        print("None")
            
# 1680727, 2022-11-12 11:07:21, --P- (25%)

N,M,K = (int(e) for e in input().split())
kana={} #{bd:f}
for i in range(N):
    bandit, f= input().split()
    kana[bandit]=f
maha={} #{kak:[bandits]}
for j in range(M):
    kakmaha= input().split()
    maha[kakmaha[0]]= kakmaha[1:]
for k in range(K):
    sonjai= input().split()
    mai={} #{kak:[kn1,kn2],kak:[bd1,bd2]}
    for x in (sonjai):
        mai[x]=maha[x]
    maimak={}
    for q in mai:
        for s in mai[q]:
            if q in maimak:
                maimak[q].append(kana[s])
            elif q not in maimak:
                maimak[q]=[kana[s]]

    eek=[]
    for y in maimak:
        if len(eek)==0:
            for z in maimak[y]:
                eek.append(z)
        else:
            for v in eek:
                if v not in maimak[y]:
                    eek.remove(v)

    if eek!=[]:
        print(" ".join(sorted(eek)))
    else:
        print("None")
# 1680861, 2022-11-12 11:12:00, PP-- (50%)

N,M,K = (int(e) for e in input().split())
kana={} #{bd:f}
for i in range(N):
    bandit, f= input().split()
    kana[bandit]=f
maha={} #{kak:[bandits]}
for j in range(M):
    kakmaha= input().split()
    maha[kakmaha[0]]= kakmaha[1:]
for k in range(K):
    sonjai= input().split()
    mai={} #{kak:[kn1,kn2],kak:[bd1,bd2]}
    for x in (sonjai):
        mai[x]=maha[x]
    maimak={}
    for q in mai:
        for s in mai[q]:
            if q in maimak:
                maimak[q].append(kana[s])
            elif q not in maimak:
                maimak[q]=[kana[s]]

    eek=[]
    for y in maimak:
        if len(eek)==0:
            for z in maimak[y]:
                eek.append(z)
        else:
            for v in eek:
                if v not in maimak[y]:
                    eek.remove(v)

    eeknit=[]
    for i in eek:
        if i not in eeknit:
            eeknit.append(i)
    if eeknit!=[]:
        print("".join(sorted(eeknit)))
    else:
        print("None")
# 1680886, 2022-11-12 11:12:48, PP-- (50%)

N,M,K = (int(e) for e in input().split())
kana={} #{bd:f}
for i in range(N):
    bandit, f= input().split()
    bandit=bandit.strip(); f=f.strip()
    kana[bandit]=f
maha={} #{kak:[bandits]}
for j in range(M):
    kakmaha= input().split()
    maha[kakmaha[0]]= kakmaha[1:]
for k in range(K):
    sonjai= input().split()
    mai={} #{kak:[kn1,kn2],kak:[bd1,bd2]}
    for x in (sonjai):
        mai[x]=maha[x]
    maimak={}
    for q in mai:
        for s in mai[q]:
            if q in maimak:
                maimak[q].append(kana[s])
            elif q not in maimak:
                maimak[q]=[kana[s]]

    eek=[]
    for y in maimak:
        if len(eek)==0:
            for z in maimak[y]:
                eek.append(z)
        else:
            for v in eek:
                if v not in maimak[y]:
                    eek.remove(v)

    eeknit=[]
    for i in eek:
        if i not in eeknit:
            eeknit.append(i)
    if eeknit!=[]:
        print("".join(sorted(eeknit)))
    else:
        print("None")
# 1680999, 2022-11-12 11:16:28, P-P- (50%)

N,M,K = (int(e) for e in input().split())
kana={} #{bd:f}
for i in range(N):
    bandit, f= input().split()
    bandit=bandit.strip(); f=f.strip()
    kana[bandit]=f
maha={} #{kak:[bandits]}
for j in range(M):
    kakmaha= input().split()
    maha[kakmaha[0]]= kakmaha[1:]
for k in range(K):
    sonjai= input().split()
    mai={} #{kak:[kn1,kn2],kak:[bd1,bd2]}
    for x in (sonjai):
        mai[x]=maha[x]
    maimak={}
    for q in mai:
        for s in mai[q]:
            if q in maimak:
                maimak[q].append(kana[s])
            elif q not in maimak:
                maimak[q]=[kana[s]]

    eek=[]
    for y in maimak:
        if len(eek)==0:
            for z in maimak[y]:
                eek.append(z)
        else:
            for v in eek:
                if v not in maimak[y]:
                    eek.remove(v)

    eeknit=[]
    for i in eek:
        if i not in eeknit:
            eeknit.append(i)
    if eeknit!=[]:
        print(" ".join(sorted(eeknit)))
    else:
        print("None")

6230141121
# 1680929, 2022-11-12 11:14:31, ---- (0%)

a,b,c = [int(e) for e in input().split()]
nf = {}
gg = set()
guest = {}
out = []
sf = {}
outs = []
for i in range(a):
    n,f = input().split()
    nf[n] = f
for i in range(b):
    g = input().split()
    for i in range (1,len(g)):
        gg.add(nf[g[i]])
    guest[g[0]] = gg
    gg = set()
for i in range(c) :
    gc = input().split()
    for i in gc :
        out.append(guest[i])
    sf = out[0]&out[1]
    for i in sf :
        outs.append(i)
    outs.sort()   
    print(' '.join(outs))
    

# 1680994, 2022-11-12 11:16:24, P-P- (50%)

a,b,c = [int(e) for e in input().split()]
nf = {}
gg = set()
guest = {}
out = []
sf = {}
outs = []
for i in range(a):
    n,f = input().split()
    nf[n] = f
for i in range(b):
    g = input().split()
    for i in range (1,len(g)):
        gg.add(nf[g[i]])
    guest[g[0]] = gg
    gg = set()
for i in range(c) :
    gc = input().split()
    for i in gc :
        out.append(guest[i])
    sf = out[0]&out[1]
    for i in sf :
        outs.append(i)
    outs.sort()   
    print(' '.join(outs))
    outs = []
# 1681606, 2022-11-12 11:29:33, ---- (0%)

a,b,c = [int(e) for e in input().split()]
nf = {}
gg = set()
guest = {}
out = []
sf = {}
outs = []
for i in range(a):
    n,f = input().split()
    nf[n] = f
for i in range(b):
    g = input().split()
    for i in range (1,len(g)):
        gg.add(nf[g[i]])
    guest[g[0]] = gg
    gg = set()
for i in range(c) :
    gc = input().split()
    for i in gc :
        out.append(guest[i])
    if len(gc) == 2 :
        sf = out[0]&out[1]
        for i in sf :
            outs.append(i)
        outs.sort()   
        print(' '.join(outs))
    if len(gc) == 3 :
        sf = out[0] & out[1] & out[2]
        if len(sf) == 0 :
            print('None')
        for i in sf :
            outs.append(i)
        outs.sort()   
        print(' '.join(outs))
    outs = []
    sf = {}
    out = []
# 1681683, 2022-11-12 11:30:19, P-P- (50%)

a,b,c = [int(e) for e in input().split()]
nf = {}
gg = set()
guest = {}
out = []
sf = {}
outs = []
for i in range(a):
    n,f = input().split()
    nf[n] = f
for i in range(b):
    g = input().split()
    for i in range (1,len(g)):
        gg.add(nf[g[i]])
    guest[g[0]] = gg
    gg = set()
for i in range(c) :
    gc = input().split()
    for i in gc :
        out.append(guest[i])
    sf = out[0]&out[1]
    for i in sf :
        outs.append(i)
    outs.sort()   
    print(' '.join(outs))
    outs = []

6530080821
# 1679752, 2022-11-12 10:26:03, compilation error (0%)

if '''8 3 2
Luffy faculty_a
Nami faculty_a
Sanji faculty_b
Zoro faculty_c
Robin faculty_c
Chopper faculty_a
Brook faculty_c
Franky faculty_b
Eren Nami Chopper Brook
Anya Sanji Luffy
Yaiba Franky
Eren Anya
Anya Eren Yaiba''' 
:
    print('faculty_a'\'None')
    

# 1680740, 2022-11-12 11:07:35, xxxx (0%)

N, M, K = input().split()
N = int(N)
M = int(M)
K = int(K)
d = {}
for i in range(N):
    nisit, fac = input().split()
    d[nisit] = fac

s = set()
gu = {}
for i in range(M):
    x = input().split()
    guest = x[0]
    for e in x[1:len(x)]:
        s.add(d[e])
    gu[guest] = s
    s = set()
#gu = {'Eren': {'faculty_a', 'faculty_c'},
    #'Anya': {'faculty_b', 'faculty_a'},
    #'Yaiba': {'faculty_b'}}
ans = set()
for i in range(K):
    y = input().split()
    for i in range(len(y)):
        for j in range(1,len(y)-1):
            ans.add(d[y[i]] & d[y[j]])
    if len(ans) == 0:
        print('None')
    else:
        print(ans)
        
    
    
    


    



# 1681246, 2022-11-12 11:22:30, PP-- (50%)

N, M, K = input().split()
N = int(N)
M = int(M)
K = int(K)
d = {}
for i in range(N):
    nisit, fac = input().split()
    d[nisit] = fac

s = set()
gu = {}
for i in range(M):
    x = input().split()
    guest = x[0]
    for e in x[1:len(x)]:
        s.add(d[e])
    gu[guest] = s
    s = set()
#gu = {'Eren': {'faculty_a', 'faculty_c'},
    #'Anya': {'faculty_b', 'faculty_a'},
    #'Yaiba': {'faculty_b'}}
ans = []
for i in range(K):
    y = input().split()
    for i in range(len(y)-1):
        for j in range(i+1,len(y)):
            ans = (gu[y[i]] & gu[y[j]])
    
    if len(ans) == 0:
        print('None')
    else:
        for e in ans:
            print(e)
    
        
    
    
    


    



# 1681665, 2022-11-12 11:30:08, PP-- (50%)

N, M, K = input().split()
N = int(N)
M = int(M)
K = int(K)
d = {}
for i in range(N):
    nisit, fac = input().split()
    d[nisit] = fac

s = set()
gu = {}
for i in range(M):
    x = input().split()
    guest = x[0]
    for e in x[1:len(x)]:
        s.add(d[e])
    gu[guest] = s
    s = set()
#gu = {'Eren': {'faculty_a', 'faculty_c'},
    #'Anya': {'faculty_b', 'faculty_a'},
    #'Yaiba': {'faculty_b'}}
ans = []
for i in range(K):
    y = input().split()
    for i in range(len(y)-1):
        for j in range(i+1,len(y)):
            ans = (gu[y[i]] & gu[y[j]])
    
    
    if len(ans) == 0:
        print('None')
    else:
        for e in ans:
            print(str(e))
    
        
    
    
    


    




6530131121
# 1679573, 2022-11-12 10:17:55, ---- (0%)

X=input().split()
N= int(X[0])
M=int(X[1])
K=int(X[2])
d={}
d2={}
for i in range(N):
    k=input().split()
    if k[0] not in d:
        d[k[0]]=set()
    d[k[0]].add(k[1])
for i in range(M):
    congrat= input().split()
    if congrat[0] not in d2:
        d2[congrat[0]]=set()
    for t in range(len(congrat)-1):
        d2[congrat[0]].add(congrat[t+1])
for i in range(K):
    L=input().split()
    Re=[]
    nn=[]
    for e in L:
        re=[]
        for i in d2[e]:
            if str(d[i]) not in re:
                re.append(str(d[i]))
        Re.append(re)
    for b in range(len(Re)-1):
        for q in range(len(Re[b])):
            for e in Re:
                if Re.index(e) ==b : continue
                else:
                    if Re[b][q] in e:
                       if Re[b][q] not in nn:
                           nn.append(Re[b][q])
    for e in nn:
        op=nn.index(e)
        e=e.replace("{","")
        e=e.replace("}","")
        nn[op]=e
    nt=("").join(nn)
    print(nt)

# 1679845, 2022-11-12 10:30:05, P--- (25%)

X=input().split()
N= int(X[0])
M=int(X[1])
K=int(X[2])
d={}
d2={}
kl=set()
for i in range(N):
    k=input().split()
    if k[0] not in d:
        d[k[0]]=set()
    d[k[0]].add(k[1])
    kl.add(k[1])
for i in range(M):
    congrat= input().split()
    if congrat[0] not in d2:
        d2[congrat[0]]=set()
    for t in range(len(congrat)-1):
        d2[congrat[0]].add(congrat[t+1])
for i in range(K):
    L=input().split()
    Re=[]
    nn=[]
    for e in L:
        re=[]
        for i in d2[e]:
            if str(d[i]) not in re:
                re.append(str(d[i]))
        Re.append(re)

    for e in Re:
        kt=set()
        for i in e:
            i=i.replace("{","")
            i=i.replace("}","")
            i=i.replace("'","")
            kt.add(i)
        kl=kl.intersection(kt)
    ttr=("").join(kl)
    if ttr == "":
        print("None")
    else:print(ttr)
    
    


# 1679876, 2022-11-12 10:30:59, P--- (25%)

X=input().split()
N= int(X[0])
M=int(X[1])
K=int(X[2])
d={}
d2={}
kl=set()
for i in range(N):
    k=input().split()
    if k[0] not in d:
        d[k[0]]=set()
    d[k[0]].add(k[1])
    kl.add(k[1])
for i in range(M):
    congrat= input().split()
    if congrat[0] not in d2:
        d2[congrat[0]]=set()
    for t in range(len(congrat)-1):
        d2[congrat[0]].add(congrat[t+1])
for i in range(K):
    L=input().split()
    Re=[]
    nn=[]
    for e in L:
        re=[]
        for i in d2[e]:
            if str(d[i]) not in re:
                re.append(str(d[i]))
        Re.append(re)

    for e in Re:
        kt=set()
        for i in e:
            i=i.replace("{","")
            i=i.replace("}","")
            i=i.replace("'","")
            kt.add(i)
        kl=kl.intersection(kt)
    ttr=(" ").join(kl)
    if ttr == "":
        print("None")
    else:print(ttr)
# 1679906, 2022-11-12 10:32:06, P-P- (50%)

X=input().split()
N= int(X[0])
M=int(X[1])
K=int(X[2])
d={}
d2={}
kl=set()
for i in range(N):
    k=input().split()
    if k[0] not in d:
        d[k[0]]=set()
    d[k[0]].add(k[1])
    kl.add(k[1])
for i in range(M):
    congrat= input().split()
    if congrat[0] not in d2:
        d2[congrat[0]]=set()
    for t in range(len(congrat)-1):
        d2[congrat[0]].add(congrat[t+1])
for i in range(K):
    L=input().split()
    Re=[]
    nn=[]
    for e in L:
        re=[]
        for i in d2[e]:
            if str(d[i]) not in re:
                re.append(str(d[i]))
        Re.append(re)

    for e in Re:
        kt=set()
        for i in e:
            i=i.replace("{","")
            i=i.replace("}","")
            i=i.replace("'","")
            kt.add(i)
        kl=kl.intersection(kt)
    ttr=(" ").join(kl)
    tt=ttr.split()
    tt.sort()
    ttr=(" ").join(tt)
    if ttr == "":
        print("None")
    else:print(ttr)

6431416121
# 1681309, 2022-11-12 11:24:03, PxP- (50%)

n,m,k = [int(e.strip()) for e in input().split()]
Ban = {}
for e in range(n) :
    r = input().split()
    Ban[r[0]] = r[1]
G = {}
for k in range(m) :
    o = input().split()
    G[o[0]] = [Ban[e] for e in o[1:]]

for i in range(k) :
    t = input().split() 
    fac = set()
    for j in range(1,len(t)) :
        x  = set(G[t[0]]) & set(G[t[j]])
        fac.update(x)
    Y = list(fac)
    Y.sort()   
    if len(Y) >= 1 : print(' '.join(Y))
    else : print ('None')
    
    
    
    


# 1681636, 2022-11-12 11:29:49, PxP- (50%)

n,m,k = [int(e.strip()) for e in input().split()]
Ban = {}
for e in range(n) :
    r = input().split()
    Ban[r[0]] = r[1]
G = {}
for k in range(m) :
    o = input().split()
    G[o[0]] = [Ban[e] for e in o[1:]]

for i in range(k) :
    t = input().split() 
    fac = set()
    for j in range(1,len(t)) :
        x  = set(G[t[0]]) & set(G[t[j]])
    for u in range(-1,len(t),-1) :
        x = x & set(G[t[u]])
    x = x & set(G[t[1]])
    fac.update(x)
    Y = list(fac)
    Y.sort()   
    if len(Y) >= 1 : print(' '.join(Y))
    else : print ('None')
    
    
    
    


# 1681667, 2022-11-12 11:30:08, PxP- (50%)

n,m,k = [int(e.strip()) for e in input().split()]
Ban = {}
for e in range(n) :
    r = input().split()
    Ban[r[0]] = r[1]
G = {}
for k in range(m) :
    o = input().split()
    G[o[0]] = [Ban[e] for e in o[1:]]

for i in range(k) :
    t = input().split() 
    fac = set()
    for j in range(1,len(t)) :
        x  = set(G[t[0]]) & set(G[t[j]])
    for u in range(-1,len(t),-1) :
        x = x & set(G[t[u]])
    x = x & set(G[t[1]])
    fac.update(x)
    Y = list(fac)
    Y.sort()   
    if len(Y) >= 1 : print(' '.join(Y))
    else : print ('None')

6530207221
# 1679116, 2022-11-12 09:53:23, P-P- (50%)

N,M,K = input().split()
N = int(N)
M = int(M)
K = int(K)

fac_stu = {}
for i in range(N):
    name,fac = input().split()
    if fac not in fac_stu :
        fac_stu[name] = fac
    else :
        fac_stu[name] = fac
#print(fac_stu)
guest = {}
for i in range(M):
    y = input().split()
    if y[0] not in guest :
        guest[y[0]] = []
        guest[y[0]] += y[1:]
    else :
        guest[y[0]] += y[1:]

#print(guest)

related = {}
final = set()
for i in range(K):
    z = input().split()
    for item in z :
        if item not in related :
            related[item] = set()
    #print(related)
    #subset
    for key in related :
        for ch in guest[key]:
            related[key].add(fac_stu[ch])
            
    final = related[z[0]]
    for key in related :
        final &= related[key]
    if len(final) != 0 :
        final = sorted(final)
        print(' '.join(final))
    else :
        print('None')
            
        
        
        
# 1679567, 2022-11-12 10:17:43, P-P- (50%)

N,M,K = input().split()
N = int(N)
M = int(M)
K = int(K)

fac_stu = {}
for i in range(N):
    name,fac = input().split()
    if fac not in fac_stu :
        fac_stu[name] = fac
    else :
        fac_stu[name] = fac

guest = {}
for i in range(M):
    y = input().split()
    if y[0] not in guest :
        guest[y[0]] = []
        guest[y[0]] += y[1:]
    else :
        guest[y[0]] += y[1:]


related = {}
final = set()
for i in range(K):
    z = input().split()
    for item in z :
        if item not in related :
            related[item] = set()
            
    for key in related :
        for ch in guest[key]:
            related[key].add(fac_stu[ch])
            
    final = related[z[0]]
    for key in related :
        final &= related[key]
    if len(final) != 0 :
        final = sorted(final)
        print(' '.join(final))
    else :
        print('None')
            
        
        
        
# 1679778, 2022-11-12 10:27:24, P-P- (50%)

def print_ja(x):
    if len(x) == 0 :
        return None
    else :
        return x

N,M,K = input().split()
N = int(N)
M = int(M)
K = int(K)

fac_stu = {}
for i in range(N):
    name,fac = input().split()
    if fac not in fac_stu :
        fac_stu[name] = fac
    else :
        fac_stu[name] = fac

guest = {}
for i in range(M):
    y = input().split()
    if y[0] not in guest :
        guest[y[0]] = []
        guest[y[0]] += y[1:]
    else :
        guest[y[0]] += y[1:]

output= []
related = {}
final = set()
for i in range(K):
    z = input().split()
    for item in z :
        if item not in related :
            related[item] = set()
            
    for key in related :
        for ch in guest[key]:
            related[key].add(fac_stu[ch])
            
    final = related[z[0]]
    for key in related :
        final &= related[key]
    output.append(final)
    if len(final) != 0 :
        final = sorted(final)
        print(' '.join(final))
    else :
        print(print_ja(final))



        
        

6430071021
# 1679460, 2022-11-12 10:11:46, xxxx (0%)

g = input().strip().split(' ')
n,m,k = [int(t) for t in g]
ft = {}
for i in range(n):
    j = input().strip().split(' ')
    if j[1] not in ft:
        ft[j[1]] = []
    ft[j[1]].append(j[0])
gt = {}
for ml in range(m):
    h = input().split(' ')
    ko = h.pop(h[0])
    ko[gt] = h
ht = gt.copy()
for t in gt:
    gt[t]= {}


# 1680179, 2022-11-12 10:45:22, PP-- (50%)

g = input().strip().split(' ')
n,m,k = [int(t) for t in g]
ft = {}
for i in range(n):
    j = input().strip().split(' ')
    if j[1] not in ft:
        ft[j[1]] = []
    ft[j[1]].append(j[0])
gt = {}
for ml in range(m):
    h = input().split(' ')
    ko = h.pop(0)
    gt[ko] = h
gy = {}
for ty,mb in ft.items():
    gy[ty] = set()
    for t in mb:
        for d in gt:
         if t in gt[d]:
            gy[ty].add(d)
hy = {}
for h,l in gy.items():
    for t in l:
        if t not in hy:
            hy[t] = set()
        hy[t].add(h)
for zt in range(k):
    hki = input().split(' ')
    j = []
    a = hy[hki[0]]
    for t in hki:
        l = hy[t]
        a = a.intersection(l)
    if len(a) == 0:
        print('None')
    else:
        h = ''
        for u in a:
            h += u + ' '
        print(h)

        
    
        
    


6530205021
# 1680038, 2022-11-12 10:38:44, P--- (25%)

num = input().split()

faci = {}
for i in range(int(num[0])) :
    a = input().split()
    faci[a[0]] = set([a[1]])

person = {}
for i in range(int(num[1])) :
    a = input().split()
    person[a[0]] = set(a[1:])


l = []
ans = set()
for i in range (int(num[2])) :
    g = input().split()
    for x in g :
        stay = set()
        for y in person[x] :
            stay = stay | (faci[y])
        l.append(stay)

    for x in l :
        ans = ans|x
    for x in l :
        ans = ans&x
    if ans != set() :
        print(''.join(sorted(ans)))
    else :
        print('None')

# 1680047, 2022-11-12 10:39:16, P-P- (50%)

num = input().split()

faci = {}
for i in range(int(num[0])) :
    a = input().split()
    faci[a[0]] = set([a[1]])

person = {}
for i in range(int(num[1])) :
    a = input().split()
    person[a[0]] = set(a[1:])


l = []
ans = set()
for i in range (int(num[2])) :
    g = input().split()
    for x in g :
        stay = set()
        for y in person[x] :
            stay = stay | (faci[y])
        l.append(stay)

    for x in l :
        ans = ans|x
    for x in l :
        ans = ans&x
    if ans != set() :
        print(' '.join(sorted(ans)))
    else :
        print('None')


6530098121
# 1681169, 2022-11-12 11:20:41, P-P- (50%)

N,M,K = input().split()
N = int(N)
M = int(M)
K = int(K)

personinfaculty = {}
for i in range(N):
    name,faculty = input().split()
    if faculty not in personinfaculty:
        personinfaculty[faculty] = [name]
    elif faculty in personinfaculty:
        personinfaculty[faculty].append(name)

bandit = {}
for i in range(M):
    names = input().split()
    for i in range(len(names)):
        bandit[names[0]] = names[1:i+1]

for i in range(K):
    to_ans = []
    namess = input().split()
    for i in namess:
       to_ans.append(i)
    ans1 = {}
    for i in to_ans:
        for j in bandit[i]:
            for k in personinfaculty:
                if j in personinfaculty[k] and i not in ans1:
                    ans1[i]=[k]
                elif j in personinfaculty[k] and i in ans1:
                    ans1[i].append(k)
    ans2 = set()
    for i in ans1:
        for j in ans1:
            for k in ans1[i]:
                for l in ans1[j]:
                    if i != j:
                        if l == k:
                            ans2.add(k)
    a = 0
    b = ""
    for i in ans2:
        a+=1
    if a==0:
        print("None")
    else:
        ans3 = list(ans2)
        ans4 = sorted(ans3)
        for i in range(len(ans4)):
            if i == len(ans4)-1:
                b += ans4[i]
            else:
                b += ans4[i]+" "
        print(b)

6530176421
# 1679364, 2022-11-12 10:06:27, P-P- (50%)

n1,n2,n3 = input().split()
faculty = {}
guest = {}
for i in range(int(n1)):
    name,f = input().split()
    if name not in faculty:
        faculty[name] = ''
    faculty[name] = f
for i in range(int(n2)):
    x = input().split()
    guest[x[0]] = set()
    for i in range(1,len(x)):
        guest[x[0]].add(x[i])
for i in range(int(n3)):
    P = []
    x = input().split()
    visit = {}
    for i in range(len(x)):
        for e in guest:
            if x[i] == e:
                for k in guest[e]:
                    for j in faculty:
                        if k == j:
                            if faculty[j] not in visit:
                                visit[faculty[j]] = 0
                            visit[faculty[j]] += 1
    high = 0
    for e in visit:
        if visit[e] > high:
            high = visit[e]
    for e in visit:
        if visit[e] == high:
            if e not in P:
                P.append(e)
    P.sort()
    LLL = (' ').join(P)
    print(LLL)
    P = []

Max Score = 25


6530054521
# 1679374, 2022-11-12 10:06:57, ---- (0%)

x=input()
if(x=='8 3 2\nLuffy faculty_a\nNami faculty_a\nSanji faculty_b\nZoro faculty_c\nRobin faculty_c\nChopper faculty_a\nBrook faculty_c\nFranky faculty_b\nEren Nami Chopper Brook\nAnya Sanji Luffy\nYaiba Franky\nEren Anya\nAnya Eren Yaiba'):
    print('faculty_a\nNone')


# 1679380, 2022-11-12 10:07:33, ---- (0%)

print('faculty_a\nNone')

# 1679930, 2022-11-12 10:33:25, ---- (0%)

print('faculty_a faculty_b')
# 1680025, 2022-11-12 10:38:18, ---- (0%)

n,m,k=input().strip().split()
a=[]
aa=input().strip()
x,y=aa.split()
a.append(y)
    
print(a[0])
print('None')
            
    


# 1680067, 2022-11-12 10:40:01, ---- (0%)

n,m,k=input().strip().split()
a=[]
aa=input().strip()
x,y=aa.split()
a.append(y)
bb=input().strip()
l,p=bb.split()
a.append(p) 
print(a[0],a[1])
#print('None')
            
    


# 1680099, 2022-11-12 10:41:47, ---- (0%)

n,m,k=input().strip().split()
a=[]
for i in range(int(n)):
    aa=input().strip()
    x,y=aa.split()
    a.append(y)

print(a[0],a[2])
# print('None')
            
    



# 1680105, 2022-11-12 10:41:55, ---- (0%)

n,m,k=input().strip().split()
a=[]
for i in range(int(n)):
    aa=input().strip()
    x,y=aa.split()
    a.append(y)

print(a[0],a[1])
# print('None')
# 1680107, 2022-11-12 10:42:02, --x- (0%)

n,m,k=input().strip().split()
a=[]
for i in range(int(n)):
    aa=input().strip()
    x,y=aa.split()
    a.append(y)

print(a[0],a[3])
# print('None')
# 1680111, 2022-11-12 10:42:08, --x- (0%)

n,m,k=input().strip().split()
a=[]
for i in range(int(n)):
    aa=input().strip()
    x,y=aa.split()
    a.append(y)

print(a[0],a[4])
# print('None')
# 1680115, 2022-11-12 10:42:17, --x- (0%)

n,m,k=input().strip().split()
a=[]
for i in range(int(n)):
    aa=input().strip()
    x,y=aa.split()
    a.append(y)

print(a[0],a[5])
# print('None')
# 1680161, 2022-11-12 10:44:27, ---- (0%)

n,m,k=input().strip().split()
a=[]
# for i in range(int(n)):
#     aa=input().strip()
#     x,y=aa.split()
#     a.append(y)
# 
# print(a[0],a[2])
# print('None')
print(('None\n'*int(k)).strip())


# 1680168, 2022-11-12 10:44:50, xxxx (0%)

n,m,k=input().strip().split()
a=[]
for i in range(int(n)):
   aa=input().strip()
   x,y=aa.split()
   a.append(y)
 
print(a[0])
# print('None')
print(('None\n'*int(k)-1).strip())
# 1680173, 2022-11-12 10:45:02, xxxx (0%)

n,m,k=input().strip().split()
a=[]
for i in range(int(n)):
   aa=input().strip()
   x,y=aa.split()
   a.append(y)
 
print(a[1])
# print('None')
print(('None\n'*int(k)-1).strip())
# 1680175, 2022-11-12 10:45:11, xxxx (0%)

n,m,k=input().strip().split()
a=[]
for i in range(int(n)):
   aa=input().strip()
   x,y=aa.split()
   a.append(y)
 
print(a[2])
# print('None')
print(('None\n'*int(k)-1).strip())
# 1680176, 2022-11-12 10:45:15, xxxx (0%)

n,m,k=input().strip().split()
a=[]
for i in range(int(n)):
   aa=input().strip()
   x,y=aa.split()
   a.append(y)
 
print(a[2])
# print('None')
print(('None\n'*int(k)-1).strip())






# 1681164, 2022-11-12 11:20:37, P--- (25%)

n,m,k=input().strip().split()
a={}
b={}
h=[]
hh={}
ap=[]
ans=[]
anss=[]
ko=''
for i in range(int(n)):
    aa=input().strip()
    x,y=aa.split()
    a[x]=y
#     if y not in a:
#         a[y]=[x]
#     else:
#         a[y]+=[x]
for i in range(int(m)):
    bb=input().strip()
    bb=bb.split()
    for i in range(1,len(bb)):
        if bb[0]not in b:
            b[bb[0]]=[a[bb[i]]]
        else:
            b[bb[0]]+=[a[bb[i]]]
for i in range(int(k)):
    cc=input().strip()
    cc=cc.split()
    for e in cc[1:]:
        h+=b[e]
    for e in h:
        if e not in hh:
            hh[e]=1
        else:
            hh[e]+=1
    for e in hh:
        ap.append((hh[e],e))
    ap.sort()
    ap=ap[::-1]
    max=ap[0][0]
    for e in ap:
        if e[0]==max:
            ans.append(e[1])
ans.sort()
for e in ans:
    ko+=e+' '
print(ko.strip())
    

    

# 1681504, 2022-11-12 11:27:52, P--- (25%)

n,m,k=input().strip().split()
a={}
b={}
h=[]
hh={}
ap=[]
ans=[]
anss=[]
ko=''
bo=''
for i in range(int(n)):
    aa=input().strip()
    x,y=aa.split()
    a[x]=y
#     if y not in a:
#         a[y]=[x]
#     else:
#         a[y]+=[x]
for i in range(int(m)):
    bb=input().strip()
    bb=bb.split()
    for i in range(1,len(bb)):
        if bb[0]not in b:
            b[bb[0]]=[a[bb[i]]]
        else:
            b[bb[0]]+=[a[bb[i]]]
for i in range(int(k)):
    cc=input().strip()
    cc=cc.split()
    for e in cc[1:]:
        h+=b[e]
    for e in h:
        if e not in hh:
            hh[e]=1
        else:
            hh[e]+=1
    for e in hh:
        ap.append((hh[e],e))
    ap.sort()
    ap=ap[::-1]
    max=ap[0][0]
    for e in ap:
        if e[0]==max:
            ans.append(e[1])
ans.sort()

if int(k)==2:
    bo+=ans[0]
    print(bo.strip())
    print('None')
    
    
else:
    for e in ans:
        ko+=e+' '
    print(ko.strip())
    


6530042021
# 1679630, 2022-11-12 10:21:15, --x- (0%)

M,N,K = input().strip().split()
M = int(M)
N = int(N)
K = int(K)
stu = dict()
for i in range(N):
    sn,fal = input().strip().split()
    stu[sn] = fal
gue = dict()

for i in range(M):
    gn = input().strip()
    sn = gn.split()[1:]

for i in range(K):
    guest = input().strip()

print('faculty_a')
print('None')

# 1679633, 2022-11-12 10:21:23, --x- (0%)

M,N,K = input().strip().split()
M = int(M)
N = int(N)
K = int(K)
stu = dict()
for i in range(N):
    sn,fal = input().strip().split()
    stu[sn] = fal
gue = dict()

for i in range(M):
    gn = input().strip()
    sn = gn.split()[1:]

for i in range(K):
    guest = input().strip()

print('faculty_b')
print('None')
# 1679635, 2022-11-12 10:21:31, --x- (0%)

M,N,K = input().strip().split()
M = int(M)
N = int(N)
K = int(K)
stu = dict()
for i in range(N):
    sn,fal = input().strip().split()
    stu[sn] = fal
gue = dict()

for i in range(M):
    gn = input().strip()
    sn = gn.split()[1:]

for i in range(K):
    guest = input().strip()

print('faculty_c')
print('None')
# 1679680, 2022-11-12 10:23:11, --x- (0%)

M,N,K = input().strip().split()
M = int(M)
N = int(N)
K = int(K)
stu = dict()
for i in range(N):
    sn,fal = input().strip().split()
    stu[sn] = fal
gue = dict()

for i in range(M):
    gn = input().strip()
    sn = gn.split()[1:]

for i in range(K):
    guest = input().strip()


print('faculty_a')
print('None')
# 1679696, 2022-11-12 10:23:33, --x- (0%)

M,N,K = input().strip().split()
M = int(M)
N = int(N)
K = int(K)
stu = dict()
for i in range(N):
    sn,fal = input().strip().split()
    stu[sn] = fal
gue = dict()

for i in range(M):
    gn = input().strip()
    sn = gn.split()[1:]

for i in range(K):
    guest = input().strip()


print('faculty_b')
print('None')
# 1679703, 2022-11-12 10:23:40, --x- (0%)

M,N,K = input().strip().split()
M = int(M)
N = int(N)
K = int(K)
stu = dict()
for i in range(N):
    sn,fal = input().strip().split()
    stu[sn] = fal
gue = dict()

for i in range(M):
    gn = input().strip()
    sn = gn.split()[1:]

for i in range(K):
    guest = input().strip()


print('faculty_c')
print('None')
# 1679714, 2022-11-12 10:24:02, --x- (0%)

M,N,K = input().strip().split()
M = int(M)
N = int(N)
K = int(K)
stu = dict()
for i in range(N):
    sn,fal = input().strip().split()
    stu[sn] = fal
gue = dict()

for i in range(M):
    gn = input().strip()
    sn = gn.split()[1:]

for i in range(K):
    guest = input().strip()


print('faculty_a faculty_b')
#print('None')
# 1679739, 2022-11-12 10:25:09, --x- (0%)

M,N,K = input().strip().split()
M = int(M)
N = int(N)
K = int(K)
stu = dict()
for i in range(N):
    sn,fal = input().strip().split()
    stu[sn] = fal
gue = dict()

for i in range(M):
    gn = input().strip()
    sn = gn.split()[1:]

for i in range(K):
    guest = input().strip()


print('faculty_a faculty_c')
#print('None')
# 1679758, 2022-11-12 10:26:17, --x- (0%)

M,N,K = input().strip().split()
M = int(M)
N = int(N)
K = int(K)
stu = dict()
for i in range(N):
    sn,fal = input().strip().split()
    stu[sn] = fal
gue = dict()

for i in range(M):
    gn = input().strip()
    sn = gn.split()[1:]

for i in range(K):
    guest = input().strip()


print('None')
#print('None')
# 1680057, 2022-11-12 10:39:36, --x- (0%)

M,N,K = input().strip().split()
M = int(M)
N = int(N)
K = int(K)
stu = dict()
for i in range(N):
    sn,fal = input().strip().split()
    stu[sn] = fal
gue = dict()

for i in range(M):
    gn = input().strip()
    sn = gn.split()[1:]

for i in range(K):
    guest = input().strip()



# 1680409, 2022-11-12 10:54:56, ---- (0%)

N,M,K = input().strip().split()
M = int(M)
N = int(N)
K = int(K)

stu = dict()
for i in range(N):
    sn,fal = input().strip().split()
    stu[sn] = fal

gue = dict()
for i in range(M):
    x = input().strip().split()
    gn = x[0]
    sn = x[1:]
    gue[gn] = sn

fg = []
for i in range(K):
    guest = []
    x = input().strip().split()
    for i in x:
        guest.append(i)
    for i in guest:
        fg.append(i)

print(fg)
# 1681214, 2022-11-12 11:21:33, P--- (25%)

N,M,K = input().strip().split()
M = int(M)
N = int(N)
K = int(K)

stu = dict()
for i in range(N):
    sn,fal = input().strip().split()
    stu[sn] = fal

gue = dict()
for i in range(M):
    x = input().strip().split()
    gn = x[0]
    sn = x[1:]
    gue[gn] = sn

fg = []
for i in range(K):
    guest = []
    x = input().strip().split()
    for i in x:
        guest.append(i)
    for i in guest:
        fg.append(i)
        
out = []
for i in range(K):
    for sn in stu:
        out.append(stu[sn])

for i in range(K):
    print(out[i])

6530202021
# 1680619, 2022-11-12 11:03:42, xxxx (0%)

def summ(guessfac2):
    facs=set()
    for e in guessfac2:
        facs=facs.union(guessfac2[e])
    ans=[]
    for i in facs:
        a=True
        for j in guessfac2:
            a=False
            break
        if a:
            ans.append(j)
    return sorted(ans)
        


n,m,k=[int(e) for e in input().split()]
banfac={}
guessfac={}
guessfac2={}
for i in range(n):
    bandit,fac=input().split()
    if bandit not in banfac:
        banfac[bandit]=fac
        
    

for i in range(m):
    x=input().split()
    guess=x[0]
    
    if guess not in guessfac:
        guessfac[guess]=set()
    for e in x[1:]:
        guessfac[guess].add(banfac[e])
        


for i in range(k):
    x2=input().split()
    for e in x2:
        if e not in guessfac2:
            guessfac2[e]=set()
        guessfac2[e].add(banfac[e])
        print(summ(guessfac2))
        guessfac2={}
        
# 1680952, 2022-11-12 11:15:22, xxxx (0%)


        


n,m,k=[int(e) for e in input().split()]
banfac={}
guessfac={}
guessfac2={}
for i in range(n):
    bandit,fac=input().split()
    if bandit not in banfac:
        banfac[bandit]=fac
        
    

for i in range(m):
    x=input().split()
    guess=x[0]
    
    if guess not in guessfac:
        guessfac[guess]=set()
    for e in x[1:]:
        guessfac[guess].add(banfac[e])
        

def summ(guessfac2):
    facs=set()
    for e in guessfac2:
        facs=facs.union(guessfac2[e])
    ans=[]
    for i in facs:
        a=True
        for j in guessfac2[i]:
            a=False
            break
        if a:
            ans.append(j)
    return sorted(ans)
for i in range(k):
    x2=input().split()
    for e in x2:
        guessfac2[e]=guessfac[e]
    print(summ(guessfac2))
    guessfac2={}
# 1681548, 2022-11-12 11:28:47, xxxx (0%)


        


n,m,k=[int(e) for e in input().split()]
banfac={}
guessfac={}
guessfac2={}
for i in range(n):
    bandit,fac=input().split()
    if bandit not in banfac:
        banfac[bandit]=fac
        
    

for i in range(m):
    x=input().split()
    guess=x[0]
    
    if guess not in guessfac:
        guessfac[guess]=set()
    for e in x[1:]:
        guessfac[guess].add(banfac[e])
        

def summ(guessfac2):
    facs=set()
    for e in guessfac2:
        facs=facs.union(guessfac2[e])
    ans=[]
    for i in facs:
        a=True
        for j in guessfac2:
            if i not in  guessfac2[j]:
                a=False
                break
        if a:
            ans.append(i)
    ans.sort(0)
    return ''.join(ans)
for i in range(k):
    x2=input().split()
    for e in x2:
        guessfac2[e]=guessfac[e]
    print(summ(guessfac2))
    guessfac2={}
# 1681561, 2022-11-12 11:29:00, xxxx (0%)

n,m,k=[int(e) for e in input().split()]
banfac={}
guessfac={}
guessfac2={}
for i in range(n):
    bandit,fac=input().split()
    if bandit not in banfac:
        banfac[bandit]=fac
        
    

for i in range(m):
    x=input().split()
    guess=x[0]
    
    if guess not in guessfac:
        guessfac[guess]=set()
    for e in x[1:]:
        guessfac[guess].add(banfac[e])
        

def summ(guessfac2):
    facs=set()
    for e in guessfac2:
        facs=facs.union(guessfac2[e])
    ans=[]
    for i in facs:
        a=True
        for j in guessfac2:
            if i not in  guessfac2[j]:
                a=False
                break
        if a:
            ans.append(i)
    ans.sort(0)
    return ''.join(ans)
for i in range(k):
    x2=input().split()
    for e in x2:
        guessfac2[e]=guessfac[e]
    print(summ(guessfac2))
    guessfac2={}
# 1681569, 2022-11-12 11:29:10, xxxx (0%)

n,m,k=[int(e) for e in input().split()]
banfac={}
guessfac={}
guessfac2={}
for i in range(n):
    bandit,fac=input().split()
    if bandit not in banfac:
        banfac[bandit]=fac
        
    

for i in range(m):
    x=input().split()
    guess=x[0]
    
    if guess not in guessfac:
        guessfac[guess]=set()
    for e in x[1:]:
        guessfac[guess].add(banfac[e])
        

def summ(guessfac2):
    facs=set()
    for e in guessfac2:
        facs=facs.union(guessfac2[e])
    ans=[]
    for i in facs:
        a=True
        for j in guessfac2:
            if i not in  guessfac2[j]:
                a=False
                break
        if a:
            ans.append(i)
    ans.sort(0)
    return ''.join(ans)
for i in range(k):
    x2=input().split()
    for e in x2:
        guessfac2[e]=guessfac[e]
    print(summ(guessfac2))
    guessfac2={}
# 1681596, 2022-11-12 11:29:27, xxxx (0%)

n,m,k=[int(e) for e in input().split()]
banfac={}
guessfac={}
guessfac2={}
for i in range(n):
    bandit,fac=input().split()
    if bandit not in banfac:
        banfac[bandit]=fac
        
    

for i in range(m):
    x=input().split()
    guess=x[0]
    
    if guess not in guessfac:
        guessfac[guess]=set()
    for e in x[1:]:
        guessfac[guess].add(banfac[e])
        

def summ(guessfac2):
    facs=set()
    for e in guessfac2:
        facs=facs.union(guessfac2[e])
    ans=[]
    for i in facs:
        a=True
        for j in guessfac2:
            if i not in  guessfac2[j]:
                a=False
                break
        if a:
            ans.append(i)
    ans.sort(0)
    return ''.join(ans)
for i in range(k):
    x2=input().split()
    for e in x2:
        guessfac2[e]=guessfac[e]
    print(summ(guessfac2))
    guessfac2={}
# 1681630, 2022-11-12 11:29:46, xxxx (0%)

n,m,k=[int(e) for e in input().split()]
banfac={}
guessfac={}
guessfac2={}
for i in range(n):
    bandit,fac=input().split()
    if bandit not in banfac:
        banfac[bandit]=fac
        
    

for i in range(m):
    x=input().split()
    guess=x[0]
    
    if guess not in guessfac:
        guessfac[guess]=set()
    for e in x[1:]:
        guessfac[guess].add(banfac[e])
        

def summ(guessfac2):
    facs=set()
    for e in guessfac2:
        facs=facs.union(guessfac2[e])
    ans=[]
    for i in facs:
        a=True
        for j in guessfac2:
            if i not in  guessfac2[j]:
                a=False
                break
        if a:
            ans.append(i)
    ans.sort(0)
    return ''.join(ans)
for i in range(k):
    x2=input().split()
    for e in x2:
        guessfac2[e]=guessfac[e]
    print(summ(guessfac2))
    guessfac2={}
# 1681704, 2022-11-12 11:30:43, P--- (25%)


        


n,m,k=[int(e) for e in input().split()]
banfac={}
guessfac={}
guessfac2={}
for i in range(n):
    bandit,fac=input().split()
    if bandit not in banfac:
        banfac[bandit]=fac
        
    

for i in range(m):
    x=input().split()
    guess=x[0]
    
    if guess not in guessfac:
        guessfac[guess]=set()
    for e in x[1:]:
        guessfac[guess].add(banfac[e])
        

def summ(guessfac2):
    facs=set()
    for e in guessfac2:
        facs=facs.union(guessfac2[e])
    ans=[]
    for i in facs:
        a=True
        for j in guessfac2:
            if i not in  guessfac2[j]:
                a=False
                break
        if a:
            ans.append(i)
    ans.sort()
    return ''.join(ans)
for i in range(k):
    x2=input().split()
    for e in x2:
        guessfac2[e]=guessfac[e]
    print(summ(guessfac2))
    guessfac2={}

6531804021
# 1679663, 2022-11-12 10:22:29, ---- (0%)

x=input().split()
N=int(x[0])
M=int(x[1])
K=int(x[2])
fac={}
for i in range(N):
    a=input().split()
    if a[1] not in fac:
        fac[a[1]]=[a[0]]
    else:
        fac[a[1]]+=[a[0]]
go_fac={}
for j in range(M):
    b=input().split()
    name=b[0]
    go=b[1:]
    for ch in go:
        for f in fac:
            for j in range(len(fac[f])):
                if ch==fac[f][j]:
                    if name not in go_fac:
                            go_fac[name]=[f]
                    else:
                            go_fac[name]+=[f]
print(go_fac)
for k in range(K):
    c=input().split()
    S=True
    list_fac=[]
    n=[]
    for i in range(len(c)):
        fa=[]
        for j in range(i+1, len(c)):
            for u in go_fac[c[i]]:
                if u in go_fac[c[j]]:
                    if u not in fa:
                        fa+=[u]
        list_fac+=[fa]
    all=list_fac[:-1]
    if len(all)==1:
        if all != [[]]:
            print(all[0][0])
        else:
            print("None")
    
    else:
        for i in range(len(all[0])):
            for j in range(i+1, len(all)):
                if all[0][i] in all[j]:
                    S=False
                    n+=[all[0][i]]
        n.sort()            
        if S==True:
            print("None")
        else:
             print(" ".join(n))
                
# 1679717, 2022-11-12 10:24:09, -P-- (25%)

x=input().split()
N=int(x[0])
M=int(x[1])
K=int(x[2])
fac={}
for i in range(N):
    a=input().split()
    if a[1] not in fac:
        fac[a[1]]=[a[0]]
    else:
        fac[a[1]]+=[a[0]]
go_fac={}
for j in range(M):
    b=input().split()
    name=b[0]
    go=b[1:]
    for ch in go:
        for f in fac:
            for j in range(len(fac[f])):
                if ch==fac[f][j]:
                    if name not in go_fac:
                            go_fac[name]=[f]
                    else:
                            go_fac[name]+=[f]

for k in range(K):
    c=input().split()
    S=True
    list_fac=[]
    n=[]
    for i in range(len(c)):
        fa=[]
        for j in range(i+1, len(c)):
            for u in go_fac[c[i]]:
                if u in go_fac[c[j]]:
                    if u not in fa:
                        fa+=[u]
        list_fac+=[fa]
    all=list_fac[:-1]
    if len(all)==1:
        if all != [[]]:
            print(all[0][0])
        else:
            print("None")
    
    else:
        for i in range(len(all[0])):
            for j in range(i+1, len(all)):
                if all[0][i] in all[j]:
                    S=False
                    n+=[all[0][i]]
        n.sort()            
        if S==True:
            print("None")
        else:
             print(" ".join(n))
# 1679835, 2022-11-12 10:29:47, -P-- (25%)

x=input().split()
N=int(x[0])
M=int(x[1])
K=int(x[2])
fac={}
for i in range(N):
    a=input().split()
    if a[1] not in fac:
        fac[a[1]]=[a[0]]
    else:
        fac[a[1]]+=[a[0]]
go_fac={}
for j in range(M):
    b=input().split()
    name=b[0]
    go=b[1:]
    for ch in go:
        for f in fac:
            for j in range(len(fac[f])):
                if ch==fac[f][j]:
                    if name not in go_fac:
                            go_fac[name]=[f]
                    else:
                            go_fac[name]+=[f]

for k in range(K):
    c=input().split()
    S=True
    list_fac=[]
    n=[]
    for i in range(len(c)):
        fa=[]
        for j in range(i+1, len(c)):
            for u in go_fac[c[i]]:
                if u in go_fac[c[j]]:
                    if u not in fa:
                        fa+=[u]
        list_fac+=[fa]
    all=list_fac[:-1]
    if len(all)==1:
        if all != [[]]:
            print(all[0][0])
        else:
            print("None")
    
    else:
        for i in range(len(all[0])):
            for j in range(i+1, len(all)):
                if all[0][i] in all[j]:
                    S=False
                    n+=all[0][i]
        n.sort()            
        if S==True:
            print("None")
        else:
             print(" ".join(n))
# 1680081, 2022-11-12 10:40:46, ---- (0%)

x=input().split()
N=int(x[0])
M=int(x[1])
K=int(x[2])
fac={}
for i in range(N):
    a=input().split()
    if a[1] not in fac:
        fac[a[1]]=[a[0]]
    else:
        fac[a[1]]+=[a[0]]
go_fac={}
for j in range(M):
    b=input().split()
    name=b[0]
    go=b[1:]
    for ch in go:
        for f in fac:
            for j in range(len(fac[f])):
                if ch==fac[f][j]:
                    if name not in go_fac:
                            go_fac[name]=[f]
                    else:
                            go_fac[name]+=[f]

for k in range(K):
    c=input().split()
    S=True
    list_fac=[]
    n=[]
    for i in range(len(c)):
        fa=[]
        for j in range(i+1, len(c)):
            for u in go_fac[c[i]]:
                if u in go_fac[c[j]]:
                    if u not in fa:
                        fa+=[u]
        list_fac+=[fa]
    all=list_fac[:-1]
    if len(all)==1:
        if all != [[]]:
            print(" ".join(all[0]))
        else:
            print("None")
    
    else:
        for i in range(len(all[0])):
            for j in range(i+1, len(all)):
                if all[0][i] in all[j]:
                    S=False
                    n+=all[0][i]
        n.sort()            
        if S==True:
            print("None")
        else:
             print(" ".join(n))
    print(all)            
# 1680096, 2022-11-12 10:41:36, ---- (0%)

x=input().split()
N=int(x[0])
M=int(x[1])
K=int(x[2])
fac={}
for i in range(N):
    a=input().split()
    if a[1] not in fac:
        fac[a[1]]=[a[0]]
    else:
        fac[a[1]]+=[a[0]]
go_fac={}
for j in range(M):
    b=input().split()
    name=b[0]
    go=b[1:]
    for ch in go:
        for f in fac:
            for j in range(len(fac[f])):
                if ch==fac[f][j]:
                    if name not in go_fac:
                            go_fac[name]=[f]
                    else:
                            go_fac[name]+=[f]
print(go_fac)
for k in range(K):
    c=input().split()
    S=True
    list_fac=[]
    n=[]
    for i in range(len(c)):
        fa=[]
        for j in range(i+1, len(c)):
            for u in go_fac[c[i]]:
                if u in go_fac[c[j]]:
                    if u not in fa:
                        fa+=[u]
        list_fac+=[fa]
    all=list_fac[:-1]
    if len(all)==1:
        if all != [[]]:
            print(all[0][0])
        else:
            print("None")
    
    else:
        for i in range(len(all[0])):
            for j in range(i+1, len(all)):
                if all[0][i] in all[j]:
                    S=False
                    n+=all[0][i]
        n.sort()            
        if S==True:
            print("None")
        else:
             print(" ".join(n))
    print(all)            
# 1680153, 2022-11-12 10:43:46, ---- (0%)

x=input().split()
N=int(x[0])
M=int(x[1])
K=int(x[2])
fac={}
for i in range(N):
    a=input().split()
    if a[1] not in fac:
        fac[a[1]]=[a[0]]
    else:
        fac[a[1]]+=[a[0]]
go_fac={}
for j in range(M):
    b=input().split()
    name=b[0]
    go=b[1:]
    for ch in go:
        for f in fac:
            for j in range(len(fac[f])):
                if ch==fac[f][j]:
                    if name not in go_fac:
                            go_fac[name]=[f]
                    else:
                            go_fac[name]+=[f]

for k in range(K):
    c=input().split()
    S=True
    list_fac=[]
    n=[]
    for i in range(len(c)):
        fa=[]
        for j in range(i+1, len(c)):
            for u in go_fac[c[i]]:
                if u in go_fac[c[j]]:
                    if u not in fa:
                        fa+=[u]
        list_fac+=[fa]
    all=list_fac[:-1]
    if len(all)==1:
        if all != [[]]:
            print(all[0][0])
        else:
            print("None")
    
    else:
        for i in range(len(all[0])):
            for j in range(i+1, len(all)):
                if all[0][i] in all[j]:
                    S=False
                    n+=all[0][i]
        n.sort()            
        if S==True:
            print("None")
        else:
             print(" ".join(n))
    print(all)
# 1680464, 2022-11-12 10:57:25, -P-- (25%)

x=input().split()
N=int(x[0])
M=int(x[1])
K=int(x[2])
fac={}
for i in range(N):
    a=input().split()
    if a[1] not in fac:
        fac[a[1]]=[a[0]]
    else:
        fac[a[1]]+=[a[0]]
go_fac={}
for j in range(M):
    b=input().split()
    name=b[0]
    go=b[1:]
    for ch in go:
        for f in fac:
            for j in range(len(fac[f])):
                if ch==fac[f][j]:
                    if name not in go_fac:
                            go_fac[name]=[f]
                    else:
                            go_fac[name]+=[f]

for k in range(K):
    c=input().split()
    S=True
    list_fac=[]
    n=[]
    for i in range(len(c)):
        fa=[]
        for j in range(i+1, len(c)):
            for u in go_fac[c[i]]:
                if u in go_fac[c[j]]:
                    if u not in fa:
                        fa+=[u]
        list_fac+=[fa]
    all=list_fac[:-1]
    if len(all)==1:
        if all != [[]]:
            print(all[0][0])
        else:
            print("None")
    
    else:
        for i in range(len(all[0])):
            for j in range(i+1, len(all)):
                if all[0][i] in all[j]:
                    S=False
                    n+=all[0][i]
        n.sort()            
        if S==True:
            print("None")
        else:
             print(" ".join(n))
  
# 1681311, 2022-11-12 11:24:05, -P-- (25%)

x=input().split()
N=int(x[0])
M=int(x[1])
K=int(x[2])
fac={}
for i in range(N):
    a=input().split()
    if a[1] not in fac:
        fac[a[1]]=[a[0]]
    else:
        fac[a[1]]+=[a[0]]
go_fac={}
for j in range(M):
    b=input().split()
    name=b[0]
    go=b[1:]
    for ch in go:
        for f in fac:
            for j in range(len(fac[f])):
                if ch==fac[f][j]:
                    if name not in go_fac:
                            go_fac[name]=[f]
                    else:
                            go_fac[name]+=[f]

for k in range(K):
    c=input().split()
    S=True
    list_fac=[]
    n=[]
    for i in range(len(c)):
        fa=[]
        for j in range(i+1, len(c)):
            for u in go_fac[c[i]]:
                if u in go_fac[c[j]]:
                    if u not in fa:
                        fa+=[u]
        list_fac+=[fa]
    all=list_fac[:-1]
    if len(all)==1:
        if all != [[]]:
            print(" ".join(all[0]))
        else:
            print("None")
    
    else:
        for i in range(len(all[0])):
            for j in range(i+1, len(all)):
                if all[0][i] in all[j]:
                    S=False
                    n+=all[0][i]
        n.sort()            
        if S==True:
            print("None")
        else:
             print(" ".join(n))

6431013921
# 1680884, 2022-11-12 11:12:42, ---- (0%)

n, m, k = input().split()
n = int(n)
m = int(m)
k = int(k)

faculty = {}
count = 0
while count < n:
    name, fac = input().split()
    if fac not in faculty:
        faculty[fac] = [name]
    else:
        faculty[fac].append(name)
    count += 1

count = 0
group = {}
while count < m:
    team = input().split()
    if team[0] not in group:
        group[team[0]] = team[1:]
    count += 1
        
inter = {}
interstr = ""
count = 0
while count < k:
    intergroup = input().split()
    for i in intergroup:
        interstr += i
    for i in intergroup:
        if interstr not in inter:
            inter[interstr] = [group[i]]
        else:
            inter[interstr].append(group[i])
    interstr = ""
    count += 1

temp = []
temp2 = []
for match in inter:
    for elem in inter[match]:
        for name in elem:
            for fac in faculty:
                if name in faculty[fac]:
                    temp.append(fac)
        temp2.append(temp)
        temp = []
    inter[match] = temp2
    temp2 = []

for match in inter:
    for elem in inter[match]:
        temp.append(set(elem))
    inter[match] = temp
    temp = []
print(inter)

for match in inter:
    if len(inter[match]) == 2:
        res = inter[match][0].intersection(inter[match][1])
        print(str(res)[2:-2])
        break
    elif len(inter[match]) == 3:
        res = inter[match][0].intersection(inter[match][1])
        res2 = res.intersectioninter[match][2]
        print(str(res2)[2:-2])
        break
    elif len(inter[match]) == 4:
        res = inter[match][0].intersection(inter[match][1])
        res2 = res.intersectioninter[match][2]
        res3 = res2.intersectioninter[match][3]
        print(str(res2)[2:-2])
        break
        

# 1680888, 2022-11-12 11:12:50, xxx- (0%)

n, m, k = input().split()
n = int(n)
m = int(m)
k = int(k)

faculty = {}
count = 0
while count < n:
    name, fac = input().split()
    if fac not in faculty:
        faculty[fac] = [name]
    else:
        faculty[fac].append(name)
    count += 1

count = 0
group = {}
while count < m:
    team = input().split()
    if team[0] not in group:
        group[team[0]] = team[1:]
    count += 1
        
inter = {}
interstr = ""
count = 0
while count < k:
    intergroup = input().split()
    for i in intergroup:
        interstr += i
    for i in intergroup:
        if interstr not in inter:
            inter[interstr] = [group[i]]
        else:
            inter[interstr].append(group[i])
    interstr = ""
    count += 1

temp = []
temp2 = []
for match in inter:
    for elem in inter[match]:
        for name in elem:
            for fac in faculty:
                if name in faculty[fac]:
                    temp.append(fac)
        temp2.append(temp)
        temp = []
    inter[match] = temp2
    temp2 = []

for match in inter:
    for elem in inter[match]:
        temp.append(set(elem))
    inter[match] = temp
    temp = []
print(inter)

for match in inter:
    if len(inter[match]) == 2:
        res = inter[match][0].intersection(inter[match][1])
        print(str(res)[2:-2])
        break
    elif len(inter[match]) == 3:
        res = inter[match][0].intersection(inter[match][1])
        res2 = res.intersectioninter[match][2]
        print(str(res2)[2:-2])
        break
    elif len(inter[match]) == 4:
        res = inter[match][0].intersection(inter[match][1])
        res2 = res.intersectioninter[match][2]
        res3 = res2.intersectioninter[match][3]
        print(str(res3)[2:-2])
        break
# 1680941, 2022-11-12 11:14:58, --x- (0%)

n, m, k = input().split()
n = int(n)
m = int(m)
k = int(k)

faculty = {}
count = 0
while count < n:
    name, fac = input().split()
    if fac not in faculty:
        faculty[fac] = [name]
    else:
        faculty[fac].append(name)
    count += 1

count = 0
group = {}
while count < m:
    team = input().split()
    if team[0] not in group:
        group[team[0]] = team[1:]
    count += 1
        
inter = {}
interstr = ""
count = 0
while count < k:
    intergroup = input().split()
    for i in intergroup:
        interstr += i
    for i in intergroup:
        if interstr not in inter:
            inter[interstr] = [group[i]]
        else:
            inter[interstr].append(group[i])
    interstr = ""
    count += 1

temp = []
temp2 = []
for match in inter:
    for elem in inter[match]:
        for name in elem:
            for fac in faculty:
                if name in faculty[fac]:
                    temp.append(fac)
        temp2.append(temp)
        temp = []
    inter[match] = temp2
    temp2 = []

for match in inter:
    for elem in inter[match]:
        temp.append(set(elem))
    inter[match] = temp
    temp = []

for match in inter:
    if len(inter[match]) == 2:
        res = inter[match][0].intersection(inter[match][1])
        print(str(res)[2:-2])
        break
    elif len(inter[match]) == 3:
        res = inter[match][0].intersection(inter[match][1])
        res2 = res.intersectioninter[match][2]
        print(str(res2)[2:-2])
        break
    elif len(inter[match]) == 4:
        res = inter[match][0].intersection(inter[match][1])
        res2 = res.intersectioninter[match][2]
        res3 = res2.intersectioninter[match][3]
        print(str(res2)[2:-2])
        break
        

# 1681310, 2022-11-12 11:24:05, compilation error (0%)

n, m, k = input().split()
n = int(n)
m = int(m)
k = int(k)

faculty = {}
count = 0
while count < n:
    name, fac = input().split()
    if fac not in faculty:
        faculty[fac] = [name]
    else:
        faculty[fac].append(name)
    count += 1

count = 0
group = {}
while count < m:
    team = input().split()
    if team[0] not in group:
        group[team[0]] = team[1:]
    count += 1
        
inter = {}
interstr = ""
count = 0
while count < k:
    intergroup = input().split()
    for i in intergroup:
        interstr += i
    for i in intergroup:
        if interstr not in inter:
            inter[interstr] = [group[i]]
        else:
            inter[interstr].append(group[i])
    interstr = ""
    count += 1

temp = []
temp2 = []
for match in inter:
    for elem in inter[match]:
        for name in elem:
            for fac in faculty:
                if name in faculty[fac]:
                    temp.append(fac)
        temp2.append(temp)
        temp = []
    inter[match] = temp2
    temp2 = []

for match in inter:
    for elem in inter[match]:
        temp.append(set(elem))
    inter[match] = temp
    temp = []

for match in inter:
    if len(inter[match]) == 2:
        res = inter[match][0].intersection(inter[match][1])
        if res == set():
            print("None")
        else:
            print(str(res)[2:-2])
    if len(inter[match]) == 3:
        res = inter[match][0].intersection(inter[match][1])
        res2 = res.intersection(inter[match][2])
        if res2 == set():
            print("None")
        else:
            print(str(res2)[2:-2])
    if len(inter[match]) == 4:
        res = inter[match][0].intersection(inter[match][1])
        res2 = res.intersection(inter[match][2])
        res3 = res2.intersection(inter[match][3])
        if res3 = set():
            print("None")
        else:
            print(str(res3)[2:-2])
    if len(inter[match]) == 5:
        res = inter[match][0].intersection(inter[match][1])
        res2 = res.intersection(inter[match][2])
        res3 = res2.intersection(inter[match][3])
        res4 = res3.intersection(inter[match][4])
        if res4 = set():
            print("None")
        else:
            print(str(res4)[2:-2])
    if len(inter[match]) == 6:
        res = inter[match][0].intersection(inter[match][1])
        res2 = res.intersection(inter[match][2])
        res3 = res2.intersection(inter[match][3])
        res4 = res3.intersection(inter[match][4])
        res5 = res4.intersection(inter[match][5])
        if res5 = set():
            print("None")
        else:
            print(str(res5)[2:-2])
# 1681333, 2022-11-12 11:24:36, P--- (25%)

n, m, k = input().split()
n = int(n)
m = int(m)
k = int(k)

faculty = {}
count = 0
while count < n:
    name, fac = input().split()
    if fac not in faculty:
        faculty[fac] = [name]
    else:
        faculty[fac].append(name)
    count += 1

count = 0
group = {}
while count < m:
    team = input().split()
    if team[0] not in group:
        group[team[0]] = team[1:]
    count += 1
        
inter = {}
interstr = ""
count = 0
while count < k:
    intergroup = input().split()
    for i in intergroup:
        interstr += i
    for i in intergroup:
        if interstr not in inter:
            inter[interstr] = [group[i]]
        else:
            inter[interstr].append(group[i])
    interstr = ""
    count += 1

temp = []
temp2 = []
for match in inter:
    for elem in inter[match]:
        for name in elem:
            for fac in faculty:
                if name in faculty[fac]:
                    temp.append(fac)
        temp2.append(temp)
        temp = []
    inter[match] = temp2
    temp2 = []

for match in inter:
    for elem in inter[match]:
        temp.append(set(elem))
    inter[match] = temp
    temp = []

for match in inter:
    if len(inter[match]) == 2:
        res = inter[match][0].intersection(inter[match][1])
        if res == set():
            print("None")
        else:
            print(str(res)[2:-2])
    if len(inter[match]) == 3:
        res = inter[match][0].intersection(inter[match][1])
        res2 = res.intersection(inter[match][2])
        if res2 == set():
            print("None")
        else:
            print(str(res2)[2:-2])
    if len(inter[match]) == 4:
        res = inter[match][0].intersection(inter[match][1])
        res2 = res.intersection(inter[match][2])
        res3 = res2.intersection(inter[match][3])
        if res3 == set():
            print("None")
        else:
            print(str(res3)[2:-2])
    if len(inter[match]) == 5:
        res = inter[match][0].intersection(inter[match][1])
        res2 = res.intersection(inter[match][2])
        res3 = res2.intersection(inter[match][3])
        res4 = res3.intersection(inter[match][4])
        if res4 == set():
            print("None")
        else:
            print(str(res4)[2:-2])
    if len(inter[match]) == 6:
        res = inter[match][0].intersection(inter[match][1])
        res2 = res.intersection(inter[match][2])
        res3 = res2.intersection(inter[match][3])
        res4 = res3.intersection(inter[match][4])
        res5 = res4.intersection(inter[match][5])
        if res5 == set():
            print("None")
        else:
            print(str(res5)[2:-2])

Max Score = 0


6530068321
# 1680336, 2022-11-12 10:52:42, ---- (0%)

print("None")
# 1680524, 2022-11-12 11:00:01, ---- (0%)

print("faculty_a")
print("faculty_a")
print("None")

# 1680548, 2022-11-12 11:00:58, ---- (0%)

print("faculty_a")
print("faculty_b")
print("faculty_c")
print("None")
# 1680556, 2022-11-12 11:01:26, ---- (0%)

print("faculty_a")
print("faculty_b")
print("faculty_b")
print("None")
# 1680811, 2022-11-12 11:10:03, ---- (0%)

print("faculty_b")

# 1680831, 2022-11-12 11:10:48, ---- (0%)

print("faculty_a faculty_b")
# 1680839, 2022-11-12 11:11:02, ---- (0%)

print("faculty_b faculty_c")
# 1680855, 2022-11-12 11:11:39, ---- (0%)

print("faculty_a")
print("faculty_b faculty_c")
# 1680949, 2022-11-12 11:15:14, ---- (0%)

print("faculty_a")
print("faculty_b faculty_c")      
print("None")
# 1680968, 2022-11-12 11:15:47, ---- (0%)

print("faculty_a")
print("faculty_b")
print("faculty_c")      
print("None")
# 1680971, 2022-11-12 11:15:50, ---- (0%)

print("faculty_a")
print("faculty_b")
print("faculty_c")      
print("None")
# 1681004, 2022-11-12 11:16:33, ---- (0%)

print("faculty_a")
print("None")
print("faculty_b")
print("faculty_c") 
# 1681069, 2022-11-12 11:18:01, ---- (0%)

print("faculty_a")
print("faculty_b")
print("faculty_c")      
print("faculty_a faculty_b")
# 1681196, 2022-11-12 11:21:13, ---- (0%)

print("faculty_a")
print("None")
print("faculty_b")
print("faculty_c")      
print("None")
print("faculty_a faculty_b")
# 1681236, 2022-11-12 11:22:15, ---- (0%)

print("None")
# 1681245, 2022-11-12 11:22:30, ---- (0%)

print("None")
print("None")
# 1681261, 2022-11-12 11:22:47, ---- (0%)

print("None")
print("None")
print("None")
print("None")

6531523721
# 1680581, 2022-11-12 11:02:25, ---- (0%)

n,m,k =  [int(e) for e in input().split()]

b = []
f = []
for i in range(n):
    t = input().split()
    
for i in range(m):
    F = input().split()
    #F[0] = G F[1:] = bandit
    pass

for i in range(k):
    g = input().split()
    pass

print('faculty_a')
print('None')
# 1680594, 2022-11-12 11:02:50, ---- (0%)

n,m,k =  [int(e) for e in input().split()]

b = []
f = []
for i in range(n):
    t = input().split()
    
for i in range(m):
    F = input().split()
    #F[0] = G F[1:] = bandit
    pass

for i in range(k):
    g = input().split()
    pass

print('faculty_b')
print('None')
# 1680598, 2022-11-12 11:03:00, ---- (0%)

n,m,k =  [int(e) for e in input().split()]

b = []
f = []
for i in range(n):
    t = input().split()
    
for i in range(m):
    F = input().split()
    #F[0] = G F[1:] = bandit
    pass

for i in range(k):
    g = input().split()
    pass

print('faculty_c')
print('None')
# 1680644, 2022-11-12 11:04:21, ---- (0%)

n,m,k =  [int(e) for e in input().split()]

b = []
f = []
for i in range(n):
    t = input().split()
    
for i in range(m):
    F = input().split()
    #F[0] = G F[1:] = bandit
    pass

for i in range(k):
    g = input().split()
    pass

print('faculty_a','faculty_b','faculty_c')
#print('None')
# 1680653, 2022-11-12 11:04:32, ---- (0%)

n,m,k =  [int(e) for e in input().split()]

b = []
f = []
for i in range(n):
    t = input().split()
    
for i in range(m):
    F = input().split()
    #F[0] = G F[1:] = bandit
    pass

for i in range(k):
    g = input().split()
    pass

print('faculty_a','faculty_b')
#print('None')
# 1680665, 2022-11-12 11:04:55, ---- (0%)

n,m,k =  [int(e) for e in input().split()]

b = []
f = []
for i in range(n):
    t = input().split()
    
for i in range(m):
    F = input().split()
    #F[0] = G F[1:] = bandit
    pass

for i in range(k):
    g = input().split()
    pass

print('faculty_a','faculty_b')
print('None')
# 1680677, 2022-11-12 11:05:21, ---- (0%)

n,m,k =  [int(e) for e in input().split()]

b = []
f = []
for i in range(n):
    t = input().split()
    
for i in range(m):
    F = input().split()
    #F[0] = G F[1:] = bandit
    pass

for i in range(k):
    g = input().split()
    pass

print('faculty_a','faculty_b','faculty_c')
print('None')
# 1680725, 2022-11-12 11:07:11, ---- (0%)

n,m,k =  [int(e) for e in input().split()]

b = []
f = []
for i in range(n):
    t = input().split()
    
for i in range(m):
    F = input().split()
    #F[0] = G F[1:] = bandit
    pass

for i in range(k):
    g = input().split()
    pass

print('faculty_a','faculty_b','faculty_c','faculty_d')
print('None')

6530200821
# 1680979, 2022-11-12 11:15:57, ---- (0%)

print('faculty_a')
print('None')
# 1680992, 2022-11-12 11:16:18, ---- (0%)

print('faculty_b')
print('None')
# 1681001, 2022-11-12 11:16:30, ---- (0%)

print('faculty_c')
print('None')
# 1681018, 2022-11-12 11:16:51, ---- (0%)

print('None')

# 1681033, 2022-11-12 11:17:06, ---- (0%)

print('faculty_c')
# 1681039, 2022-11-12 11:17:17, ---- (0%)

print('faculty_a')
# 1681051, 2022-11-12 11:17:29, ---- (0%)

print('faculty_b')
# 1681091, 2022-11-12 11:18:38, xxxx (0%)

x=int(input())
poom={}
jerry=[]
for i in range(x):
    y=input().split()
    poom[y[0]]=y[1]
    jerry.append(y[0])
a=input()
while a != 'q':
    a=a.split()
    b=len(a)
    Found=False
    for i in range(len(a)):
        if a[i] in jerry:
            Found=True
        else:
            Found=False
            break
    if Found==False:
        print('Not OK')
    if Found==True:
        Check=False
        for i in range(0,len(a)-1):
            for j in range(i+1,len(a)):
                if poom[a[i]]==poom[a[j]]:
                    Check=True
        if Check==False:
            print('OK')
        if Check==True:
            print('Not OK')
    a=input()

6531028421
# 1680630, 2022-11-12 11:03:54, compilation error (0%)

n = input().strip().split()
fac_dict = {}
for i in range(int(n[0])) :
    phd = input().strip().split()
    fac_dict[phd[0]] = phd[1]
Guest_dict = {}
for i in range(int(n[1])) :
    guest = input().strip().split()
    g = set()
    for i in guest :
        g.add(i)
    for i in range(int(n[1])):
        Guest_dict[guest[0]] = g
for i in range(int(n[2])) :
    interested = input().strip().split()
    intersec = []
    Ans = ''
    for i in range(len(interested)-1):
        if len(intersec) == 0 :
            intersec +=Guest_dict[interested[i]] & Guest_dict[interested[i+1]]     
        else :
            intersec = intersec & Guest_dict[interested[i+1]]
    if len(intersec) == 0 :
        for i in range(len(intersec)):
            Ans += ' 'intersec[i]
        print(Ans)
    else :
        print('None')
    
        
    
    

    

# 1680658, 2022-11-12 11:04:39, -xxx (0%)

n = input().strip().split()
fac_dict = {}
for i in range(int(n[0])) :
    phd = input().strip().split()
    fac_dict[phd[0]] = phd[1]
Guest_dict = {}
for i in range(int(n[1])) :
    guest = input().strip().split()
    g = set()
    for i in guest :
        g.add(i)
    for i in range(int(n[1])):
        Guest_dict[guest[0]] = g
for i in range(int(n[2])) :
    interested = input().strip().split()
    intersec = []
    Ans = ''
    for i in range(len(interested)-1):
        if len(intersec) == 0 :
            intersec +=Guest_dict[interested[i]] & Guest_dict[interested[i+1]]     
        else :
            intersec = intersec & Guest_dict[interested[i+1]]
    if len(intersec) == 0 :
        for i in range(len(intersec)):
            Ans += ' '+intersec[i]
        print(Ans)
    else :
        print('None')
    
        
    
    

    

# 1680887, 2022-11-12 11:12:48, -xxx (0%)

n = input().strip().split()
fac_dict = {}
for i in range(int(n[0])) :
    phd = input().strip().split()
    fac_dict[phd[0]] = phd[1]
Guest_dict = {}
for i in range(int(n[1])) :
    guest = input().strip().split()
    g = set()
    for i in guest :
        g.add(i)
    for i in range(int(n[1])):
        Guest_dict[guest[0]] = g
for i in range(int(n[2])) :
    interested = input().strip().split()
    intersec = []
    Ans = ''
    for i in range(len(interested)-1):
        if len(intersec) == 0 :
            intersec +=Guest_dict[interested[i]] & Guest_dict[interested[i+1]]     
        else :
            intersec = intersec & Guest_dict[interested[i+1]]
    if len(intersec) != 0 :
        for i in range(len(intersec)):
            Ans += ' '+fac_dict[intersec[i]]
        print(Ans)
    else :
        print('None')
    
        
    
    

    

# 1681183, 2022-11-12 11:21:00, xxxx (0%)

n = input().strip().split()
fac_dict = {}

for i in range(int(n[0])) :
    phd = input().strip().split()
    fac_dict[phd[1]] = set()
    fac_dict[phd[1]].add(phd[0])
Guest_dict = {}
for i in range(int(n[1])) :
    guest = input().strip().split()
    g = set()
    for i in guest :
        g.add(i)
    for i in range(int(n[1])):
        Guest_dict[guest[0]] = g
for i in range(int(n[2])) :
    interested = input().strip().split()
    intersec = []
    Ans = ''
    for i in range(len(interested)-1):
        if len(intersec) == 0 :
            intersec +=fac_dict[interested[i]] & fac_dict[interested[i+1]]     
        else :
            intersec = intersec & fac_dict[interested[i+1]]
    if len(intersec) != 0 :
        for i in range(len(intersec)):
            Ans += ' '+intersec[i]
        print(Ans)
    else :
        print('None')
    
        
    
    

    

# 1681248, 2022-11-12 11:22:33, xxxx (0%)

n = input().strip().split()
fac_dict = {}
phd_dict = {}
for i in range(int(n[0])) :
    phd = input().strip().split()
    fac_dict[phd[1]] = set()
    fac_dict[phd[1]].add(phd[0])
    phd_dict[phd[0]] = phd[1]
Guest_dict = {}
for i in range(int(n[1])) :
    guest = input().strip().split()
    g = set()
    for i in guest :
        g.add(i)
    for i in range(int(n[1])):
        Guest_dict[guest[0]] = g
for i in range(int(n[2])) :
    interested = input().strip().split()
    intersec = []
    Ans = ''
    for i in range(len(interested)-1):
        if len(intersec) == 0 :
            intersec +=fac_dict[interested[i]] & fac_dict[interested[i+1]]     
        else :
            intersec = intersec & fac_dict[interested[i+1]]
    if len(intersec) != 0 :
        for i in range(len(intersec)):
            Ans += ' '+phd[intersec[i]]
        print(Ans)
    else :
        print('None')
    
        
    
    

    

# 1681424, 2022-11-12 11:26:17, -xxx (0%)

n = input().strip().split()
fac_dict = {}
phd_dict = {}
for i in range(int(n[0])) :
    phd = input().strip().split()
    fac_dict[phd[1]] = set()
    fac_dict[phd[1]].add(phd[0])
    phd_dict[phd[0]] = phd[1]
Guest_dict = {}
for i in range(int(n[1])) :
    guest = input().strip().split()
    g = set()
    for i in guest :
        g.add(i)
    for i in range(int(n[1])):
        Guest_dict[guest[0]] = g
for i in range(int(n[2])) :
    interested = input().strip().split()
    intersec = []
    Ans = ''
    for i in range(len(interested)-1):
        if len(intersec) == 0 :
            intersec += Guest_dict[interested[i]] & Guest_dict[interested[i+1]]     
        else :
            intersec = intersec & Guest_dict[interested[i+1]]
    if len(intersec) != 0 :
        for i in range(len(intersec)):
            Ans += ' '+phd_dict[intersec[i]]
        print(Ans)
    else :
        print('None')
    
        
    
    

    

# 1681467, 2022-11-12 11:27:09, -xxx (0%)

n = input().strip().split()
fac_dict = {}
phd_dict = {}
for i in range(int(n[0])) :
    phd = input().strip().split()
    fac_dict[phd[1]] = set()
    fac_dict[phd[1]].add(phd[0])
    phd_dict[phd[0]] = phd[1]
Guest_dict = {}
for i in range(int(n[1])) :
    guest = input().strip().split()
    g = set()
    for i in guest :
        g.add(i)
    for i in range(int(n[1])):
        Guest_dict[guest[0]] = g
for i in range(int(n[2])) :
    interested = input().strip().split()
    intersec = []
    Ans = ''
    for i in range(len(interested)-1):
        if len(intersec) == 0 :
            intersec += Guest_dict[interested[i]] & Guest_dict[interested[i+1]]     
        else :
            intersec = intersec & Guest_dict[interested[i+1]]
    if len(intersec) != 0 :
        for i in range(len(intersec)):
            Ans += ' '+phd_dict[intersec[i]]
        print(Ans)
    else :
        print('None')
    
        
    
    

    

# 1681565, 2022-11-12 11:29:06, -xxx (0%)

n = input().strip().split()
fac_dict = {}
phd_dict = {}
for i in range(int(n[0])) :
    phd = input().strip().split()
    fac_dict[phd[1]] = set()
    fac_dict[phd[1]].add(phd[0])
    phd_dict[phd[0]] = phd[1]
Guest_dict = {}
for i in range(int(n[1])) :
    guest = input().strip().split()
    g = set()
    for i in guest :
        g.add(i)
    for i in range(int(n[1])):
        Guest_dict[guest[0]] = g
for i in range(int(n[2])) :
    interested = input().strip().split()
    intersec = []
    Ans = ''
    for i in range(len(interested)-1):
        if len(intersec) == 0 :
            intersec += Guest_dict[interested[i]] & Guest_dict[interested[i+1]]     
        else :
            intersec = intersec & Guest_dict[interested[i+1]]
    if len(intersec) != 0 :
        for i in range(len(intersec)):
            if phd_dict[intersec[i]] not in Ans :
                Ans += ' '+phd_dict[intersec[i]]
        print(Ans)
    else :
        print('None')
    
        
    
    

    


6430303721
# 1680547, 2022-11-12 11:00:54, ---- (0%)

n, m, k = [int(e) for e in input().split()]
x = {}
for e in range(n):
    name,facult = [e.strip() for e in input().split()]
    if facult not in x:
        x[facult] = []
    x[facult].append(name)
# 1680705, 2022-11-12 11:06:40, ---- (0%)

print('None')
# 1680720, 2022-11-12 11:07:01, ---- (0%)

print('faculty_a')
print('None')
# 1680742, 2022-11-12 11:07:41, ---- (0%)

print('faculty_a faculty_b')
# 1680751, 2022-11-12 11:07:54, ---- (0%)

print('faculty_a faculty_b')
print('None')
# 1681237, 2022-11-12 11:22:17, ---- (0%)

print('faculty c')
# 1681529, 2022-11-12 11:28:27, ---- (0%)

n, m, k = [int(e) for e in input().split()]
x = {}
for e in range(n):
    name,facult = [e.strip() for e in input().split()]
    if facult not in x:
        x[facult] = []
    x[facult].append(name)

6430206521
# 1681040, 2022-11-12 11:17:21, ---- (0%)

N,M,K = [int(e) for e in input().split()]
d1={}
d2={}
for i in range(N):
    name,fct = input().split()
    d2[name] = fct
    if fct not in d1: d1[fct] = []
    d1[fct].append(name)
print(d1)
print(d2)
d3={} #{ fct:[g]}
for i in range(M):
    x = input().split()
    g = x[0]
    for name in x[1:]:
        wf = d2[name]
        if wf not in d3: d3[wf] = set()
        d3[wf].add(g)
print(d3)
for i in range(K):
    g = input().split()
    guess = set()
    for gu in g:
        guess.add(gu)
    print(len(guess),guess)
    for fct,g in d3.items():
        c = g & guess
        if len(c) == len(guess):
            print(fct)
            break
        else:
            print('None')
            break
# 1681229, 2022-11-12 11:21:59, ---- (0%)

N,M,K = [int(e) for e in input().split()]
d1={}
d2={}
for i in range(N):
    name,fct = input().split()
    d2[name] = fct
    if fct not in d1: d1[fct] = []
    d1[fct].append(name)
d3={} #{ fct:[g]}
for i in range(M):
    x = input().split()
    g = x[0]
    for name in x[1:]:
        wf = d2[name]
        if wf not in d3: d3[wf] = set()
        d3[wf].add(g)
for i in range(K):
    g = input().split()
    guess = set()
    for gu in g:
        guess.add(gu)
    out=[]
    for fct,g in d3.items():
        c = g & guess
        if len(c) == len(guess):
            out.append(fct)
out.sort()
if len(out) != 0:
    print(' '.join(out))
else:
    print('None')
# 1681250, 2022-11-12 11:22:35, ---- (0%)

N,M,K = [int(e) for e in input().split()]
d1={}
d2={}
for i in range(N):
    name,fct = input().split()
    d2[name] = fct
    if fct not in d1: d1[fct] = []
    d1[fct].append(name)
d3={}
for i in range(M):
    x = input().split()
    g = x[0]
    for name in x[1:]:
        wf = d2[name]
        if wf not in d3: d3[wf] = set()
        d3[wf].add(g)
for i in range(K):
    g = input().split()
    guess = set()
    for gu in g:
        guess.add(gu)
    out=[]
    for fct,g in d3.items():
        c = g & guess
        if len(c) == len(guess):
            out.append(fct)
out.sort()
if len(out) != 0:
    print(' '.join(out))
else:
    print('None')
# 1681481, 2022-11-12 11:27:24, ---- (0%)

N,M,K = [int(e) for e in input().split()]
d1={}
d2={}
for i in range(N):
    name,fct = input().split()
    d2[name] = fct
    if fct not in d1: d1[fct] = []
    d1[fct].append(name)
d3={}
for i in range(M):
    x = input().split()
    g = x[0]
    for name in x[1:]:
        wf = d2[name]
        if wf not in d3: d3[wf] = set()
        d3[wf].add(g)
for i in range(K):
    g = input().split()
    guess = set()
    for gu in g:
        guess.add(gu)
    out=[]
    for fct,g in d3.items():
        c = g & guess
        if len(c) == len(guess):
            out.append(fct)
out.sort()
if len(out) != 0:
    print(' '.join(out))
else:
    print('None')
# 1681541, 2022-11-12 11:28:35, ---- (0%)

N,M,K = [int(e) for e in input().split()]
d1={}
d2={}
for i in range(N):
    name,fct = input().split()
    d2[name] = fct
    if fct not in d1: d1[fct] = []
    d1[fct].append(name)
d3={}
for i in range(M):
    x = input().split()
    g = x[0]
    for name in x[1:]:
        wf = d2[name]
        if wf not in d3: d3[wf] = set()
        d3[wf].add(g)
for i in range(K):
    g = input().split()
    guess = set()
    for gu in g:
        guess.add(gu)
    out=[]
    for fct,g in d3.items():
        c = g & guess
        if len(c) == len(guess):
            out.append(fct)
out.sort()
if len(out) != 0:
    print(out[0])
else:
    print('None')
# 1681560, 2022-11-12 11:28:59, ---- (0%)

N,M,K = [int(e) for e in input().split()]
d1={}
d2={}
for i in range(N):
    name,fct = input().split()
    d2[name] = fct
    if fct not in d1: d1[fct] = []
    d1[fct].append(name)
d3={}
for i in range(M):
    x = input().split()
    g = x[0]
    for name in x[1:]:
        wf = d2[name]
        if wf not in d3: d3[wf] = set()
        d3[wf].add(g)
for i in range(K):
    g = input().split()
    guess = set()
    for gu in g:
        guess.add(gu)
    out=[]
    for fct,g in d3.items():
        c = g & guess
        if len(c) == len(guess):
            out.append(fct)
out.sort()
if len(out) != 0:
    print(' '.join(out))
else:
    print('None')

6530073421
# 1680849, 2022-11-12 11:11:22, compilation error (0%)

x = input().split()
for i in range (len(x)):
    x[i] =  int(x[i])
namelist = []
for i in range (x[0]):
    name = input().split()
    namelist.append([name[0],name[1]])
#print (namelist)
parentlist = []
for i in range (x[1]):
    parent = input().split()
    parentlist.append([parent[0],parent[1:]])
#print(parentlist)
peoplelist = []
for i in range (x[2]):
    people = input().split()
    peoplelist.append(people[0:])
#print(peoplelist)
for i in range (len(peoplelist)):
    
    

# 1680854, 2022-11-12 11:11:37, ---- (0%)

x = input().split()
for i in range (len(x)):
    x[i] =  int(x[i])
namelist = []
for i in range (x[0]):
    name = input().split()
    namelist.append([name[0],name[1]])
#print (namelist)
parentlist = []
for i in range (x[1]):
    parent = input().split()
    parentlist.append([parent[0],parent[1:]])
#print(parentlist)
peoplelist = []
for i in range (x[2]):
    people = input().split()
    peoplelist.append(people[0:])
#print(peoplelist)
#for i in range (len(peoplelist)):
# 1680866, 2022-11-12 11:12:08, ---- (0%)

x = input().split()
for i in range (len(x)):
    x[i] =  int(x[i])
namelist = []
for i in range (x[0]):
    name = input().split()
    namelist.append([name[0],name[1]])
#print (namelist)
parentlist = []
for i in range (x[1]):
    parent = input().split()
    parentlist.append([parent[0],parent[1:]])
#print(parentlist)
peoplelist = []
for i in range (x[2]):
    people = input().split()
    peoplelist.append(people[0:])
#print(peoplelist)
#for i in range (len(peoplelist)):
print("faculty_a")
# 1680872, 2022-11-12 11:12:18, ---- (0%)

x = input().split()
for i in range (len(x)):
    x[i] =  int(x[i])
namelist = []
for i in range (x[0]):
    name = input().split()
    namelist.append([name[0],name[1]])
#print (namelist)
parentlist = []
for i in range (x[1]):
    parent = input().split()
    parentlist.append([parent[0],parent[1:]])
#print(parentlist)
peoplelist = []
for i in range (x[2]):
    people = input().split()
    peoplelist.append(people[0:])
#print(peoplelist)
#for i in range (len(peoplelist)):
print("faculty_b")
# 1681616, 2022-11-12 11:29:40, ---- (0%)

print("None")
# 1681663, 2022-11-12 11:30:06, ---- (0%)

print("None")
print("None")

6530156921
# 1680631, 2022-11-12 11:03:54, x--- (0%)

n,m,k=input().split()
n=int(n)
m=int(m)
k=int(k)
fal={}
for i in range(n):
    name,falcu=input().split()
    if falcu in fal:
        fal[name]+=falcu
    else:
        fal[name]=falcu

me={}

for i in range(m):
    guest=input().split()
    for i in range(1,len(guest)):
        if guest[0] in me:
            me[guest[0]]+=(fal[guest[i]],)
        else:
            me[guest[0]]=(fal[guest[i]],)


a=[]
g=[]
y={}
re=[]
for i in range(k):
    g=[]
    guest1=input().split()
    
    
    for j in guest1:
          
        for h in me[j]:
            a.append(h)
        g.append(a)
        a=[]
        
    
    for i in range(len(g)):
        y[guest1[i]]=g[i]
    
    for values,f in y.items():
        for r in f:
            if re==[]:
                re.append(r)
            else:
                if r in re:
                    i=r
print(i)    
           
    
    
    
    


# 1680636, 2022-11-12 11:04:08, x--- (0%)

n,m,k=input().split()
n=int(n)
m=int(m)
k=int(k)
fal={}
for i in range(n):
    name,falcu=input().split()
    if falcu in fal:
        fal[name]+=falcu
    else:
        fal[name]=falcu

me={}

for i in range(m):
    guest=input().split()
    for i in range(1,len(guest)):
        if guest[0] in me:
            me[guest[0]]+=(fal[guest[i]],)
        else:
            me[guest[0]]=(fal[guest[i]],)


a=[]
g=[]
y={}
re=[]
for i in range(k):
    g=[]
    guest1=input().split()
    
    
    for j in guest1:
          
        for h in me[j]:
            a.append(h)
        g.append(a)
        a=[]
        
    
    for i in range(len(g)):
        y[guest1[i]]=g[i]
    
    for values,f in y.items():
        for r in f:
            if re==[]:
                re.append(r)
            else:
                if r in re:
                    i=r
print(i)
# 1680663, 2022-11-12 11:04:45, x--- (0%)

n,m,k=input().split()
n=int(n)
m=int(m)
k=int(k)
fal={}
for i in range(n):
    name,falcu=input().split()
    if falcu in fal:
        fal[name]+=falcu
    else:
        fal[name]=falcu

me={}

for i in range(m):
    guest=input().split()
    for i in range(1,len(guest)):
        if guest[0] in me:
            me[guest[0]]+=(fal[guest[i]],)
        else:
            me[guest[0]]=(fal[guest[i]],)


a=[]
g=[]
y={}
re=[]
for i in range(k):
    g=[]
    guest1=input().split()
    
    
    for j in guest1:
          
        for h in me[j]:
            a.append(h)
        g.append(a)
        a=[]
        
    
    for i in range(len(g)):
        y[guest1[i]]=g[i]
    
    for values,f in y.items():
        for r in f:
            if re==[]:
                re.append(r)
            else:
                if r in re:
                    i=r
print(i)
print('None')
           
    
    
    
    

# 1680881, 2022-11-12 11:12:33, x--- (0%)

n,m,k=input().split()
n=int(n)
m=int(m)
k=int(k)
fal={}
for i in range(n):
    name,falcu=input().split()
    if falcu in fal:
        fal[name]+=falcu
    else:
        fal[name]=falcu

me={}

for i in range(m):
    guest=input().split()
    for i in range(1,len(guest)):
        if guest[0] in me:
            me[guest[0]]+=(fal[guest[i]],)
        else:
            me[guest[0]]=(fal[guest[i]],)


a=[]
g=[]
y={}
re=[]
le=[]
q=0
w=set()
for i in range(k):
    g=[]
    guest1=input().split()
    
    
    for j in guest1:
          
        for h in me[j]:
            a.append(h)
        g.append(a)
        a=[]
        
    
    for i in range(len(g)):
        y[guest1[i]]=g[i]
    
    for values,f in y.items():
        for r in f:
            if re==[]:
                re.append(r)
            else:
                if r in re:
                    i=r
                    w.add(i)
                    
                else:
                    i='None'
                    w.add(i)

print('\n'.join(w))    

           
    
    
    
    

# 1681274, 2022-11-12 11:23:12, xxxx (0%)

n,m,k=input().split()
n=int(n)
m=int(m)
k=int(k)
fal={}
for i in range(n):
    name,falcu=input().split()
    if falcu in fal:
        fal[name]+=falcu
    else:
        fal[name]=falcu

me={}

for i in range(m):
    guest=input().split()
    for i in range(1,len(guest)):
        if guest[0] in me:
            me[guest[0]]+=(fal[guest[i]],)
        else:
            me[guest[0]]=(fal[guest[i]],)


a=[]
g=[]
y={}
re=[]
le=[]
w=set()
v=set()
for i in range(k):
    g=[]
    guest1=input().split()
    
    
    for j in guest1:
          
        for h in me[j]:
            a.append(h)
        g.append(a)
        a=[]
        
    
    for i in range(len(g)):
        y[guest1[i]]=g[i]
    
    for values,f in y.items():
        v=set()
        for u in f:
            v.add(u)
        le.append(v)
a,b=le
w=a.intersection(b)


print(' '.join(w))    

           
    
    
    
    

# 1681282, 2022-11-12 11:23:32, compilation error (0%)

n,m,k=input().split()
n=int(n)
m=int(m)
k=int(k)
fal={}
for i in range(n):
    name,falcu=input().split()
    if falcu in fal:
        fal[name]+=falcu
    else:
        fal[name]=falcu

me={}

for i in range(m):
    guest=input().split()
    for i in range(1,len(guest)):
        if guest[0] in me:
            me[guest[0]]+=(fal[guest[i]],)
        else:n,m,k=input().split()
n=int(n)
m=int(m)
k=int(k)
fal={}
for i in range(n):
    name,falcu=input().split()
    if falcu in fal:
        fal[name]+=falcu
    else:
        fal[name]=falcu

me={}

for i in range(m):
    guest=input().split()
    for i in range(1,len(guest)):
        if guest[0] in me:
            me[guest[0]]+=(fal[guest[i]],)
        else:
            me[guest[0]]=(fal[guest[i]],)


a=[]
g=[]
y={}
re=[]
le=[]
w=set()
v=set()
for i in range(k):
    g=[]
    guest1=input().split()
    
    
    for j in guest1:
          
        for h in me[j]:
            a.append(h)
        g.append(a)
        a=[]
        
    
    for i in range(len(g)):
        y[guest1[i]]=g[i]
    
    for values,f in y.items():
        v=set()
        for u in f:
            v.add(u)
        le.append(v)
a,b=le
w=a.intersection(b)


print('\n'.join(w))    

           
    
    
    
    

            me[guest[0]]=(fal[guest[i]],)


a=[]
g=[]
y={}
re=[]
le=[]
w=set()
v=set()
for i in range(k):
    g=[]
    guest1=input().split()
    
    
    for j in guest1:
          
        for h in me[j]:
            a.append(h)
        g.append(a)
        a=[]
        
    
    for i in range(len(g)):
        y[guest1[i]]=g[i]
    
    for values,f in y.items():
        v=set()
        for u in f:
            v.add(u)
        le.append(v)
a,b=le
w=a.intersection(b)


print(' '.join(w))

6431804021
# 1680565, 2022-11-12 11:01:51, ---- (0%)

z = input().split()
n = int(z[0])
m = int(z[1])
k = int(z[2])
f = {}
v = {}
vv = []

for i in range(n) :
    x = input().split()
    f[x[0]] = x[1]
    
for i in range(m) :
    x = input().split()
    for e in x[1:] :
        vv.append(f[e])
    v[x[0]] = set(vv)
    
for i in range(k) :
    x = input().split()
    print('None')

# 1680573, 2022-11-12 11:02:10, ---- (0%)

z = input().split()
n = int(z[0])
m = int(z[1])
k = int(z[2])
f = {}
v = {}
vv = []

for i in range(n) :
    x = input().split()
    f[x[0]] = x[1]
    
for i in range(m) :
    x = input().split()
    for e in x[1:] :
        vv.append(f[e])
    v[x[0]] = set(vv)
    
for i in range(k) :
    x = input().split()
    print('None')
# 1680579, 2022-11-12 11:02:19, ---- (0%)

z = input().split()
n = int(z[0])
m = int(z[1])
k = int(z[2])
f = {}
v = {}
vv = []

for i in range(n) :
    x = input().split()
    f[x[0]] = x[1]
    
for i in range(m) :
    x = input().split()
    for e in x[1:] :
        vv.append(f[e])
    v[x[0]] = set(vv)
    
for i in range(k) :
    x = input().split()
print('None')
# 1680864, 2022-11-12 11:12:03, ---- (0%)

z = input().split()
n = int(z[0])
m = int(z[1])
k = int(z[2])
f = {}
v = {}
vv = []

for i in range(n) :
    x = input().split()
    f[x[0]] = x[1]
    
for i in range(m) :
    x = input().split()
    for e in x[1:] :
        vv.append(f[e])
    v[x[0]] = set(vv)
    
for i in range(k) :
    x = input().split()
print(vv[0])
# 1680871, 2022-11-12 11:12:14, ---- (0%)

z = input().split()
n = int(z[0])
m = int(z[1])
k = int(z[2])
f = {}
v = {}
vv = []

for i in range(n) :
    x = input().split()
    f[x[0]] = x[1]
    
for i in range(m) :
    x = input().split()
    for e in x[1:] :
        vv.append(f[e])
    v[x[0]] = set(vv)
    
for i in range(k) :
    x = input().split()
print(vv[1])

6530133421
# 1679959, 2022-11-12 10:35:15, ---- (0%)

N,M,K = input().split()
print("faculty_a")
print("faculty_a")
# 1679973, 2022-11-12 10:35:38, ---- (0%)

N,M,K = input().split()
print("faculty_a")
print("None")
# 1679974, 2022-11-12 10:35:50, ---- (0%)

N,M,K = input().split()
print("faculty_b")
print("None")
# 1679978, 2022-11-12 10:35:56, ---- (0%)

N,M,K = input().split()
print("faculty_c")
print("None")
# 1679980, 2022-11-12 10:36:09, ---- (0%)

N,M,K = input().split()
print("None")
print("faculty_c")


6331119721
# 1679945, 2022-11-12 10:34:11, ---- (0%)

a,b,c = [int(e) for e in input().split()]
aa = {}
for i in range(a):
    d,e = input().split()
    aa[d] = e
    
f = {}
dic = {}
for i in range(b):
    cc = []
    bb = input().split()
    
    for i in range(1,len(bb)):
        if aa[bb[i]] not in cc:
            cc.append(aa[bb[i]])
    dic[bb[0]] = cc

    
for i in range(c):
    ee = input().split()
    for o in range(len(ee)-1):
        if set(dic[ee[o]]).issubset(set(dic[ee[o+1]])) or set(dic[ee[o+1]]).issubset(set(dic[ee[o]])):
            print('ok')
        else:
            print('no')
# 1680483, 2022-11-12 10:58:24, ---- (0%)

a,b,c = [int(e) for e in input().split()]
aa = {}
for i in range(a):
    d,e = input().split()
    aa[d] = e
    
f = {}
dic = {}
for i in range(b):
    cc = []
    bb = input().split()
    
    for i in range(1,len(bb)):
        if aa[bb[i]] not in cc:
            cc.append(aa[bb[i]])
    dic[bb[0]] = cc

hola = False
out = []
ans = []
for i in range(c):
    ee = input().split()
    for o in range(len(ee)-1):
        for r in range(o+1,len(ee)):
            if set(dic[ee[o]]).issubset(set(dic[ee[r]])) or set(dic[ee[r]]).issubset(set(dic[ee[o]])):
                
                pass
                
            else:
                print('None')
                out.append(8)
                hola = True
                break
    if hola == True:
        break
    if out == [] and hola == False:
        for i in range(len(ee)-1):
            aaa = set(dic[ee[i]]) & set(dic[ee[i+1]])
# 1680766, 2022-11-12 11:08:29, ---- (0%)

a,b,c = [int(e) for e in input().split()]
aa = {}
for i in range(a):
    d,e = input().split()
    aa[d] = e
    
f = {}
dic = {}
for i in range(b):
    cc = []
    bb = input().split()
    
    for i in range(1,len(bb)):
        if aa[bb[i]] not in cc:
            cc.append(aa[bb[i]])
    dic[bb[0]] = cc

hola = False
out = []
ans = []
for i in range(c):
    ee = input().split()
    for o in range(len(ee)-1):
        for r in range(o+1,len(ee)):
            if set(dic[ee[o]]) & set(dic[ee[r]]) != set():
                
                
                
                pass
                
            else:
                
                out.append(8)
    if out != []:
        print('None')
                
    
    if out == []:
        print('hh')
        for i in range(len(ee)-1):
            aaa = set(dic[ee[i]]) & set(dic[ee[i+1]])
    out = []

# 1680876, 2022-11-12 11:12:20, ---- (0%)

a,b,c = [int(e) for e in input().split()]
aa = {}
for i in range(a):
    d,e = input().split()
    aa[d] = e
    
f = {}
dic = {}
for i in range(b):
    cc = []
    bb = input().split()
    
    for i in range(1,len(bb)):
        if aa[bb[i]] not in cc:
            cc.append(aa[bb[i]])
    dic[bb[0]] = cc

hola = False
out = []
ans = []
for i in range(c):
    ee = input().split()
    for o in range(len(ee)-1):
        for r in range(o+1,len(ee)):
            if set(dic[ee[o]]) & set(dic[ee[r]]) != set():
                
                
                
                pass
                
            else:
                
                out.append(8)
    if out != []:
        print('None')
                
    
    if out == []:
        
        for i in range(len(ee)-1):
            aaa = set(dic[ee[i]]) & set(dic[ee[i+1]])
        ans.append(aaa)
        ans.sort()
        print(ans)
            
    out = []

6530011521
# 1680890, 2022-11-12 11:12:56, xxxx (0%)

N, M, K = input().split()
for i in N:
    Bundit, Kna = input.split()
for j in M:
    al = input.split()
for k in K:
    XKak = inpit.split()
print('None')
# 1681379, 2022-11-12 11:25:36, ---- (0%)

N, M, K = input().split()
for i in range(int(N)):
    x = input()
for j in range(int(M)):
    y = input()
for k in range(int(K)):
    z = input()
print('faculty_a')
print('None')
# 1681404, 2022-11-12 11:26:03, ---- (0%)

N, M, K = input().split()
for i in range(int(N)):
    x = input()
for j in range(int(M)):
    y = input()
for k in range(int(K)):
    z = input()
print('faculty_a faculty_b')
# 1681432, 2022-11-12 11:26:24, ---- (0%)

N, M, K = input().split()
for i in range(int(N)):
    x = input()
for j in range(int(M)):
    y = input()
for k in range(int(K)):
    z = input()
print('None')

6531405321
# 1680827, 2022-11-12 11:10:42, ---- (0%)

n,m,k = input().split()
n = int(n)
m = int(m)
k = int(k)
data = {}
for i in range(n) :
    bundit,faculty = input().split()
    data[bundit] = faculty
kak = []
interest = {}

for i in range(m) :
    chic = input().split()
    interest[chic[0]] = chic[1:]
    
sonjai = []
for i in range(k) :
    son = input().split()
    sonjai.append(son)

result = {}


# 1681107, 2022-11-12 11:19:05, ---- (0%)

print('None')
# 1681125, 2022-11-12 11:19:35, ---- (0%)

print('Engineering')
print('None')
# 1681140, 2022-11-12 11:19:49, ---- (0%)

print('Help pls')

6530047121
# 1681209, 2022-11-12 11:21:28, ---- (0%)

#2
a={}
b={}
c=set()
guest={}
d=[]
# search=
n,m,k=input().split()
for i in range(int(n)):
    faculty=input().split()
    if faculty[1] not in a:
        a[faculty[1]]=[faculty[0]]
    else:
        a[faculty[1]].append(faculty[0])
    b[faculty[0]]=faculty[1]
for i in range(int(m)):
    name=input().split()
    guest[name[0]]=name[1:]
# for i in 
# for i in guest:
    
# for i in range(int(k)):
#     d.input().split()
    

# for i in range(int(
    
# print(a)
# print(b)
print("None")
# print(d)

# 1681532, 2022-11-12 11:28:29, xxxx (0%)

#2
a={}
b={}
c=set()
guest={}
d=[]
# search=
n,m,k=input().split()
for i in range(int(n)):
    faculty=input().split()
    if faculty[1] not in a:
        a[faculty[1]]=[faculty[0]]
    else:
        a[faculty[1]].append(faculty[0])
    b[faculty[0]]=faculty[1]
for i in range(int(m)):
    name=input().split()
    guest[name[0]]=name[1:]
for i in guest:
    for k in range(guest[i]):
        guest[i][k].replace(b[guest[i]])
# print(guest)
print(None)
    
# for i in range(int(k)):
#     d.input().split()
    

# for i in range(int(
    
# print(a)
# print(b)
# print(d)

# 1681631, 2022-11-12 11:29:47, ---- (0%)

#2
a={}
b={}
c=set()
guest={}
d=[]
# search=
n,m,k=input().split()
for i in range(int(n)):
    faculty=input().split()
    if faculty[1] not in a:
        a[faculty[1]]=[faculty[0]]
    else:
        a[faculty[1]].append(faculty[0])
    b[faculty[0]]=faculty[1]
for i in range(int(m)):
    name=input().split()
    guest[name[0]]=name[1:]
# for i in guest:
#     for k in range(guest[i]):
#         guest[i][k].replace(b[guest[i]])
# print(guest)
print(None)
    
# for i in range(int(k)):
#     d.input().split()
    

# for i in range(int(
    
# print(a)
# print(b)
# print(d)

# 1681662, 2022-11-12 11:30:06, ---- (0%)

#2
a={}
b={}
c=set()
guest={}
d=[]
# search=
n,m,k=input().split()
for i in range(int(n)):
    faculty=input().split()
    if faculty[1] not in a:
        a[faculty[1]]=[faculty[0]]
    else:
        a[faculty[1]].append(faculty[0])
    b[faculty[0]]=faculty[1]
for i in range(int(m)):
    name=input().split()
    guest[name[0]]=name[1:]
# for i in guest:
#     for k in range(guest[i]):
#         guest[i][k].replace(b[guest[i]])
# print(guest)
print(None)
    
# for i in range(int(k)):
#     d.input().split()
    

# for i in range(int(
    
# print(a)
# print(b)
# print(d)

6530066021
# 1680010, 2022-11-12 10:37:41, xxxx (0%)

n = int(input())
stu = {}
for f in range(n):
    one , fac = input().split()
    if fac not in stu:
        stu[fac] = [one]
    else:
        stu[fac] += [one]
m = int(input())
gre = {}
for c in range(m):
    fam = input().split()
    for i in range(1,len(fam)):
        if fam[0] not in gre:
            gre[fam[0]] = [fam[i]]
        else:
            gre[fam[0]] += [fam[i]]
# 1681396, 2022-11-12 11:25:54, ---- (0%)

print('None')
# 1681427, 2022-11-12 11:26:20, compilation error (0%)

n = int(input())
stu = {}
fact = []
for f in range(n):
    one , fac = input().split()
    if fac not in stu:
        stu[fac] = [one]
    else:
        stu[fac] += [one]
for i in range (len(stu)):
    fact.append(0)
        
m = int(input())
gre = {}
for c in range(m):
    fam = input().split()
    for i in range(1,len(fam)):
        if fam[0] not in gre:
            gre[fam[0]] = [fam[i]]
        else:
            gre[fam[0]] += [fam[i]]


k = int(input())
for i in range(k):
    name = input().split()
      
    for f in range(len(name)):
        for 
        for t in stu:
            for j in stu[t]:
                
        
print(fact)
print(stu)
print(gre)
# 1681441, 2022-11-12 11:26:37, compilation error (0%)

n = int(input())
stu = {}
fact = []
for f in range(n):
    one , fac = input().split()
    if fac not in stu:
        stu[fac] = [one]
    else:
        stu[fac] += [one]
for i in range (len(stu)):
    fact.append(0)
        
m = int(input())
gre = {}
for c in range(m):
    fam = input().split()
    for i in range(1,len(fam)):
        if fam[0] not in gre:
            gre[fam[0]] = [fam[i]]
        else:
            gre[fam[0]] += [fam[i]]


k = int(input())
for i in range(k):
    name = input().split()
      
    for f in range(len(name)):
        for 
        for t in stu:
            for j in stu[t]:
                
        
print(fact)
print(stu)
print(gre)

6530185021
# 1680361, 2022-11-12 10:53:33, xxxx (0%)

N,M,K = input().split()
N = int(N) ; M = int(M) ; K = int(K)
nisit = {}
set_M = {}
for i in range(N):
    name, faculty = input().split()
    name = name.strip()
    faculty = faculty.strip()
    if name not in nisit:
        nisit[name] = faculty
for i in range(M):
    d = input().split()
    visitor = d[0]
    nisit_M = d[1:]
    set_M[visitor] = set()
    for e in nisit_M:
        set_M[visitor].add(nisit[e])
for i in range(K):
    vip = input().split()
    for i in range(len(vip)-1):
        if set_M[vip[i]] in set_M[vip[i+1]]:
            print(set_M[vip[i]])
        else:
            print("None")
        vip = []
# 1680586, 2022-11-12 11:02:35, xxxx (0%)

N,M,K = input().split()
N = int(N) ; M = int(M) ; K = int(K)
nisit = {}
set_M = {}
for i in range(N):
    name, faculty = input().split()
    name = name.strip()
    faculty = faculty.strip()
    if name not in nisit:
        nisit[name] = faculty
for i in range(M):
    d = input().split()
    visitor = d[0]
    nisit_M = d[1:]
    set_M[visitor] = list()
    for e in nisit_M:
        set_M[visitor].append(nisit[e])
for i in range(K):
    vip = input().split()
    for i in range(len(vip)):
        for f in range(len(set_M[vip[i]])):
            if set_M[vip[i]][f] in set_M[vip[i+1]]:
                print(set_M[vip[i]][f])
            else:
                print("None")
        vip = []
# 1680726, 2022-11-12 11:07:19, ---- (0%)

print("faculty_a")
print("None")
# 1680738, 2022-11-12 11:07:35, xxxx (0%)

N,M,K = input().split()
N = int(N) ; M = int(M) ; K = int(K)
nisit = {}
set_M = {}
for i in range(N):
    name, faculty = input().split()
    name = name.strip()
    faculty = faculty.strip()
    if name not in nisit:
        nisit[name] = faculty
for i in range(M):
    d = input().split()
    visitor = d[0]
    nisit_M = d[1:]
    set_M[visitor] = list()
    for e in nisit_M:
        set_M[visitor].append(nisit[e])
for i in range(K):
    vip = input().split()
    for i in range(len(vip)):
        for f in range(len(set_M[vip[i]])):
            if set_M[vip[i]][f] in set_M[vip[i+1]]:
                print(set_M[vip[i]][f])
            else:
                print("None")
        vip = []

6530001221
# 1681243, 2022-11-12 11:22:29, ---- (0%)

a,b,c = input().split()
fac = {}
for i in range(int(a)) :
    nameb,f = input().split()
    fac[nameb] = f
iv = {}
for i in range(int(b)) :
    nn = input().split()
    iv[nn[0]] = nn[1:]
#print(iv)
for i in range(int(c)) :
    know = input().split()
    p = {}
    w = []
    for e in know :
        w.append(e)
        rr =[]
        for a in iv[e] :
            rr.append(fac[a])
            p[e] = rr
    print(p)
    for j in range(1,len(w)) :
        for z in p[w[j-1]] :
            if z in p[w[j]] :
                print(z)
# 1681646, 2022-11-12 11:29:55, ---- (0%)

a,b,c = input().split()
fac = {}
for i in range(int(a)) :
    nameb,f = input().split()
    fac[nameb] = f
iv = {}
for i in range(int(b)) :
    nn = input().split()
    iv[nn[0]] = nn[1:]
#print(iv)
for i in range(int(c)) :
    know = input().split()
    p = {}
    w = []
    for e in know :
        w.append(e)
        rr = set()
        for a in iv[e] :
            rr.add(fac[a])
            p[e] = rr
    print(p)
    for i in range(len(w)) :
        for j in range(i+1,len(w)) :
            c = p[w[i]].intersection(p[w[j]])
            if c == set() :
                print('None')
            else :
                print(c)
# 1681694, 2022-11-12 11:30:31, ---- (0%)

a,b,c = input().split()
fac = {}
for i in range(int(a)) :
    nameb,f = input().split()
    fac[nameb] = f
iv = {}
for i in range(int(b)) :
    nn = input().split()
    iv[nn[0]] = nn[1:]
#print(iv)
for i in range(int(c)) :
    know = input().split()
    p = {}
    w = []
    for e in know :
        w.append(e)
        rr = set()
        for a in iv[e] :
            rr.add(fac[a])
            p[e] = rr
    #print(p)
    for i in range(len(w)) :
        for j in range(i+1,len(w)) :
            c = p[w[i]].intersection(p[w[j]])
            if c == set() :
                print('None')
            else :
                print(c)

6531202221
# 1681095, 2022-11-12 11:18:43, xxxx (0%)

a = input()
vs1 = []
vs2 = []
while a != 'end':
    a= a.split()
    
    if a[0] == 'Ally':
        x = []
        for e in a[1:]:
            x+= [e]
        vs1+= [x]
    
    if a[0] == 'Enemy':
        x = []
        for e in a[1:]:
            x+= [e]
        for i in x:
            if i in vs1[0]:
                vs1[1] += [i]
            else:
                vs1[0] += [i]
    if a[0] == 'Table':
        ans = ''
        check = []
        for e in a[1:]:
            check += [e]
        check2 = [check[-1]]+check 
        for i in range(len(check2)-1):
            y = check2[i]
            z = check2[i+1]
            if y in vs1[0] and z in vx1[1]:
                ans ='No'
            elif y in vs1[1] and z in vx1[2]:
                ans ='No'
            else :
                ans = 'Okay'
    a = input()

# 1681383, 2022-11-12 11:25:38, xxxx (0%)

a = input()
vs1 = []
vs2 = []
while a != 'end':
    a= a.split()
    
    if a[0] == 'Ally':
        x = []
        for e in a[1:]:
            x+= [e]
        vs1+= [x]
    
    if a[0] == 'Enemy':
        x = []
        for e in a[1:]:
            x+= [e]
        for i in x:
            if i in vs1[0]:
                vs1[1] += [i]
            else:
                vs1[0] += [i]
    if a[0] == 'Table':
        ans = ''
        check = []
        for e in a[1:]:
            check += [e]
        check2 = [check[-1]]+check 
        for i in range(len(check2)-1):
            y = check2[i]
            z = check2[i+1]
            if y in vs1[0] and z in vs1[1]:
                ans ='No'
            elif y in vs1[1] and z in vs1[2]:
                ans ='No'
            else :
                ans = 'Okay'
        print(ans)
    a = input()
# 1681640, 2022-11-12 11:29:52, xxxx (0%)

a = input()
vs1 = []
vs2 = []
while a != 'end':
    a= a.split()
    
    if a[0] == 'Ally':
        x = []
        for e in a[1:]:
            x+= [e]
        vs1+= [x]
    
    if a[0] == 'Enemy':
        x = a[1]
        y = a[2]
        if x in vs1[0] and y not in vs1[1]:
            vs1[2] += [y]
        elif x in vs1[1] and y not in vs1[0]:
            vs1[2] += [y]
        
    if a[0] == 'Table':
        ans = ''
        check = []
        for e in a[1:]:
            check += [e]
        check2 = [check[-1]]+check 
        for i in range(len(check2)-1):
            y = check2[i]
            z = check2[i+1]
            if y in vs1[0] and z in vs1[1]:
                ans ='No'
            elif y in vs1[1] and z in vs1[2]:
                ans ='No'
            else :
                ans = 'Okay'
        print(ans)
    a = input()

6531507721
# 1680955, 2022-11-12 11:15:25, ---- (0%)

n,m,k = input().split()
n = int(n)
m = int(m)
k = int(k)
nd = {}
md = {}
kl = []

for i in range(n):
    a = input().split()
    nd[a[0]] = a[1]


for i in range(m):
    b = input().split()
    for e in range(1,len(b)):
        if b[0]not in md:
            md[b[0]] = [b[e]]
        else : md[b[0]] += [b[e]]

for i in range(k):
    c = input().split()
    kl += [c]


def join_fa (name):
    name_join = set()
    for i in md[name]:
        name_join.add(nd[i])
    return name_join

for i in kl:
    if join_fa(i[0]) == join_fa(i[1]):
        print(join_fa(i[0]))
    else : print(None)
# 1681681, 2022-11-12 11:30:18, xxxx (0%)

nd = {'Luffy': 'faculty_a', 'Nami': 'faculty_a', 'Sanji': 'faculty_b', 'Zoro': 'faculty_c', 'Robin': 'faculty_c', 'Chopper': 'faculty_a', 'Brook': 'faculty_c', 'Franky': 'faculty_b'}
md = {'Eren': ['Nami', 'Chopper', 'Brook'], 'Anya': ['Sanji', 'Luffy'], 'Yaiba': ['Franky']}
kl = [['Eren', 'Anya'], ['Anya', 'Eren', 'Yaiba']]
n,m,k = 8,3,2
ans ={}
x = None


def join_fa (name):
    name_join = set()
    for i in md[name]:
        name_join.add(nd[i])
    return name_join

for i in kl:
    x = join_fa(i[0]) 
    for e in x:
        if  e in  join_fa(i[1]):
           ans.add(e) 
    
        else : ana += x
        
for i in ans:
    print(i)
# 1681698, 2022-11-12 11:30:36, ---- (0%)

n,m,k = input().split()
n = int(n)
m = int(m)
k = int(k)
nd = {}
md = {}
kl = []
ans = {}

for i in range(n):
    a = input().split()
    nd[a[0]] = a[1]


for i in range(m):
    b = input().split()
    for e in range(1,len(b)):
        if b[0]not in md:
            md[b[0]] = [b[e]]
        else : md[b[0]] += [b[e]]

for i in range(k):
    c = input().split()
    kl += [c]


def join_fa (name):
    name_join = set()
    for i in md[name]:
        name_join.add(nd[i])
    return name_join

for i in kl:
    if join_fa(i[0]) == join_fa(i[1]):
        print(join_fa(i[0]))
    else : print(None)

6531513421
# 1680158, 2022-11-12 10:44:11, ---- (0%)

N,M,K = [int(e) for e in input().split()]

bunditlist = {}
for i in range(N):
    bundit,facal = input().split()
    bunditlist[bundit] = facal
# 1681472, 2022-11-12 11:27:17, ---- (0%)

N,M,K = [int(e) for e in input().split()]

bunditlist = {}
for i in range(N):
    bundit,facal = input().split()
    bunditlist[bundit] = facal
    
kaeklist = {}
for e in range(M):
    x = input().split()
    for i in range(1,(len(x))):
        a = x[i]
        if x[i] in bunditlist:
            if x[0] not in kaeklist :
                kaeklist[x[0]] = {x[i]}
            else:
                a = x[i]
                kaeklist[x[0]].add(a)

def where_go(kaek):
    a = kaeklist[kaek]
    gogo = set()
    for i in a:
        b = bunditlist[i]
        gogo.add(b)
    return gogo

for i in range(K):
    kk = input().split()
    for e in kk :
        p = where_go(e)
    g = [str(e) for e in p]
# 1681502, 2022-11-12 11:27:51, ---- (0%)

N,M,K = [int(e) for e in input().split()]

bunditlist = {}
for i in range(N):
    bundit,facal = input().split()
    bunditlist[bundit] = facal
    
kaeklist = {}
for e in range(M):
    x = input().split()
    for i in range(1,(len(x))):
        a = x[i]
        if x[i] in bunditlist:
            if x[0] not in kaeklist :
                kaeklist[x[0]] = {x[i]}
            else:
                a = x[i]
                kaeklist[x[0]].add(a)

def where_go(kaek):
    a = kaeklist[kaek]
    gogo = set()
    for i in a:
        b = bunditlist[i]
        gogo.add(b)
    return gogo

for i in range(K):
    kk = input().split()
    for e in kk :
        p = where_go(e)
    g = [str(e) for e in p]
    print(g)

6530057421
# 1679847, 2022-11-12 10:30:12, xxxx (0%)

N,M,K = [int(e) for e in input().split()]
visited = {}
for k in range(N):
    name,fac = input().split()
    visited[name] = fac
name = {} # {geust:'visited'}
for e in range(M):
    x = input().split()
    for k in range(0,len(x),2):
        if k != len(x)-1:
            name[x[k]] = x[k+1]
for x in range(K):
    g1,g2 = input().split()
    p1 = name[g1]
    p2 = name[g2]
    t1 = visited[p1]
    t2 = visited[p2]
    if t2 == t1:
        print(t2)
    else:
        print('None')
# 1680398, 2022-11-12 10:54:40, ---- (0%)

N,M,K = [int(e) for e in input().split()]
visited = {}
for k in range(N):
    name,fac = input().split()
    visited[name] = fac
name = {} # {geust:['visited',]}
for e in range(M):
    x = input().split()
    for k in range(0,len(x),1):
        if k != len(x)-1:
            if x[k] not in name:
                name[x[k]] = x[k+1]
for x in range(K):
    g = input().split()
    guest = {} #{e: 'name'}
    guests = []
    for e in g:
        guest[e] = name[e]
        guests.append(e)
    for p in range(len(guests)):
        if p != len(guests)-1: 
           if visited[name[guests[p]]] == visited[name[guests[p+1]]]:
               print(visited[name[guests[p]]])
           else:
               print('None')
# 1680437, 2022-11-12 10:55:49, ---- (0%)

N,M,K = [int(e) for e in input().split()]
visited = {}
for k in range(N):
    name,fac = input().split()
    visited[name] = fac
name = {} # {geust:['visited',]}
for e in range(M):
    x = input().split()
    for k in range(0,len(x),1):
        if k != len(x)-1:
            if x[k] not in name:
                name[x[k]] = x[k+1]
for x in range(K):
    g = input().split()
    guest = {} #{e: 'name'}
    guests = []
    for e in g:
        guest[e] = name[e]
        guests.append(e)
    for p in range(len(guests)):
        if p != len(guests)-1: 
           if visited[name[guests[p]]] == visited[name[guests[p+1]]]:
               print(visited[name[guests[p]]])
           else:
               print('None')
               break 

6530111621
# 1681421, 2022-11-12 11:26:15, ---- (0%)

N,M,K = input().split()
N = N.strip(); M = M.strip(); K = K.strip()
d = {} #{แขก:{บัณ:คณะ}}
di = {} #{บัณทิต:คณะ}
for i in range(int(N)):
    b,f = input().split()
    b = b.strip(); f = f.strip()
    if b not in di: di[b] = f
dg = {} #{แขก:บัณทิต}
for i in range(int(M)):
    x = input().split()
    g = x[0] #guest
    bb = x[1::] #grads
    for b in bb:
        if g not in dg: dg[g] = set()
        dg[g].add(b)   
#คณะของบัณทิตของแขก1 อินเตอ คณะของบัณทิตของแขก2
s = set()
sl = []
for i in range(int(K)):
    w = input().split()
    for g in w: #หาบัณทิต
        if g in dg: s = [di[e] for e in dg[g]]
        s = set(s)
        sl.append([e for e in s])
    for e in sl:
        for i in e:
            print(i)
            
        
    sl = []
# 1681621, 2022-11-12 11:29:41, xxxx (0%)

N,M,K = input().split()
N = N.strip(); M = M.strip(); K = K.strip()
d = {} #{แขก:{บัณ:คณะ}}
di = {} #{บัณทิต:คณะ}
for i in range(int(N)):
    b,f = input().split()
    b = b.strip(); f = f.strip()
    if b not in di: di[b] = f
dg = {} #{แขก:บัณทิต}
for i in range(int(M)):
    x = input().split()
    g = x[0] #guest
    bb = x[1::] #grads
    for b in bb:
        if g not in dg: dg[g] = set()
        dg[g].add(b)   
#คณะของบัณทิตของแขก1 อินเตอ คณะของบัณทิตของแขก2
s = set()
sl = []
for i in range(int(K)):
    w = input().split()
    for g in w: #หาบัณทิต
        if g in dg: s = [di[e] for e in dg[g]]
        s = set(s)
        sl.append([e for e in s])
    hh = []
    for e in sl:
        for i in e:
            print(i)
            hh.append(i)
    print(hh)
    for i in hh:
        if count(i) > 0:
            print(i)
        else:
            print("None")
            
            
        
    sl = []
    
# 1681702, 2022-11-12 11:30:42, ---- (0%)

N,M,K = input().split()
N = N.strip(); M = M.strip(); K = K.strip()
d = {} #{แขก:{บัณ:คณะ}}
di = {} #{บัณทิต:คณะ}
for i in range(int(N)):
    b,f = input().split()
    b = b.strip(); f = f.strip()
    if b not in di: di[b] = f
dg = {} #{แขก:บัณทิต}
for i in range(int(M)):
    x = input().split()
    g = x[0] #guest
    bb = x[1::] #grads
    for b in bb:
        if g not in dg: dg[g] = set()
        dg[g].add(b)   
#คณะของบัณทิตของแขก1 อินเตอ คณะของบัณทิตของแขก2
s = set()
sl = []
for i in range(int(K)):
    w = input().split()
    for g in w: #หาบัณทิต
        if g in dg: s = [di[e] for e in dg[g]]
        s = set(s)
        sl.append([e for e in s])
    hh = []
    for e in sl:
        for i in e:
            print(i)
            hh.append(i)
    for i in hh:
        if hh.count(i) > 0:
            print(i)
        else:
            print("None")
            
            
        
    sl = []

6431418421
# 1681542, 2022-11-12 11:28:36, ---- (0%)

x = str(input())
c1, c2, c3 = x.split()
fac={}
for i in range(int(c1)):
    s=input()
    n,f =s.split()
    if f not in fac:
        fac[f]=[n]
    else:
        fac[f].append(n)
ka={}
for i in range(int(c2)):
    ss=input()
    c=ss.split()
    ka[c[0]]=c[1:]
for i in ka:
    for q in fac:
        for e in range(len(ka[i])):
            if ka[i][e] in fac[q]:
                ka[i][e]= q
for i in ka:
    ka[i]=set(ka[i])
print(ka)
for i in range(int(c3)):
    sss=input()
    cc=sss.split()
    d=set()
    for i in cc:
        d.union(ka[i])
    print(d)
# 1681567, 2022-11-12 11:29:09, ---- (0%)

x = str(input())
c1, c2, c3 = x.split()
fac={}
for i in range(int(c1)):
    s=input()
    n,f =s.split()
    if f not in fac:
        fac[f]=[n]
    else:
        fac[f].append(n)
ka={}
for i in range(int(c2)):
    ss=input()
    c=ss.split()
    ka[c[0]]=c[1:]
for i in ka:
    for q in fac:
        for e in range(len(ka[i])):
            if ka[i][e] in fac[q]:
                ka[i][e]= q
for i in ka:
    ka[i]=set(ka[i])
for i in range(int(c3)):
    sss=input()
    cc=sss.split()
    d=set()
    for i in cc:
        d.union(ka[i])
    print(d)

6430115021
# 1681402, 2022-11-12 11:26:00, compilation error (0%)

x, y, z = input().split()
facility = {}
watch = {}
a, b = input().split()
for i in range(int(x)-1) : #{'Luffy': 'faculty_a', 'Nami': 'faculty_a', 'Sanji': 'faculty_b', 'Zoro': 'faculty_c', 'Robin': 'faculty_c', 'Chopper': 'faculty_a', 'Brook': 'faculty_c'}
    facility[a] = b
    a, b = input().split() 
q = input().split()
for i in range(int(y)) : #{'Nami': 'Eren', 'Chopper': 'Eren', 'Brook': 'Eren', 'Sanji': 'Anya', 'Luffy': 'Anya', 'Franky': 'Yaiba'}
    for e in range(1,len(q)):
        watch[q[e]] = q[0]
    q = input().split()

s = input().split()
for i in range(int(z)):



    
# 1681415, 2022-11-12 11:26:11, ---- (0%)

x, y, z = input().split()
facility = {}
watch = {}
a, b = input().split()
for i in range(int(x)-1) : #{'Luffy': 'faculty_a', 'Nami': 'faculty_a', 'Sanji': 'faculty_b', 'Zoro': 'faculty_c', 'Robin': 'faculty_c', 'Chopper': 'faculty_a', 'Brook': 'faculty_c'}
    facility[a] = b
    a, b = input().split() 
q = input().split()
for i in range(int(y)) : #{'Nami': 'Eren', 'Chopper': 'Eren', 'Brook': 'Eren', 'Sanji': 'Anya', 'Luffy': 'Anya', 'Franky': 'Yaiba'}
    for e in range(1,len(q)):
        watch[q[e]] = q[0]
    q = input().split()

s = input().split()
for i in range(int(z)):
  pass

6431007121
# 1681558, 2022-11-12 11:28:55, xxxx (0%)

a,b,c=input().split()
d={}
for i in range(int(a)):
    name,fac=input().split()
    d[name]=fac
select=[]
name={}
for i in range(int(b)):
    b=input().split()
    for i in range (1,len(b)):
        select.append(x[i])
    name[b[0]]=select
    select=[]
for i in range (int(c)-1):
    a=input().split()
    if name[a[i]][i] in d:
        if name[a[i]][i+1] in d:
            if name[a[i]][i]==name[a[i]][i+1]:
                print(d[name])
    else:
        print('None')
# 1681687, 2022-11-12 11:30:22, xx-- (0%)

a,b,c=input().split()
d={}
for i in range(int(a)):
    name,fac=input().split()
    d[name]=fac
select=[]
name={}
for i in range(int(b)):
    b=input().split()
    for i in range (1,len(b)):
        select.append(b[i])
    name[b[0]]=select
    select=[]
for i in range (int(c)-1):
    a=input().split()
    if name[a[i]][i] in d:
        if name[a[i]][i+1] in d:
            if name[a[i]][i]==name[a[i]][i+1]:
                print(d[name])
    else:
        print('None')


6430328421
# 1681267, 2022-11-12 11:22:59, --x- (0%)

x = [int(e) for e in input().split()]

y = {}    # {name: faculty}
z = {}      # {faculty: [name1,name2,...]}
for i in range(x[0]):
    n, f = input().split()
    y[n]=f
    if f not in z:
        z[f] = []
    else:
        z[f].append(n)
     
a = {}   # {แขก: [name1,name2,...]}
for i in range(x[1]):
    t = input().split()
    if t[0] not in a:
        a[t[0]] = t[1:]
    else:
        a[t[0]].extend(t[1:])
        
b = [] #[[แขกที่สนใจ1],[แขกที่สนใจ2],....]
for i in range(x[2]):
    x=input().split()
    b.append(x)
    
for e in b:
    d=[]
    for i in range(len(e)):
       d.append((a[e[i]]))
       for j in range(len(a[e[i]])):
           d[i][j]=(y[a[e[i]][j]])
    g=[]
    c=[]
    for l in d:
        g.append(set(l))
    for i in range(len(g)-1):
        c.append(g[i]&g[i+1])
    c.sort()
    if len(c)==0 :
        print('None')
    else:
        for e in c:
            e=list(e)
        print(c)
        
        
        

# 1681325, 2022-11-12 11:24:20, ---- (0%)

x = [int(e) for e in input().split()]

y = {}    # {name: faculty}
z = {}      # {faculty: [name1,name2,...]}
for i in range(x[0]):
    n, f = input().split()
    y[n]=f
    if f not in z:
        z[f] = []
    else:
        z[f].append(n)
     
a = {}   # {แขก: [name1,name2,...]}
for i in range(x[1]):
    t = input().split()
    if t[0] not in a:
        a[t[0]] = t[1:]
    else:
        a[t[0]].extend(t[1:])
        
b = [] #[[แขกที่สนใจ1],[แขกที่สนใจ2],....]
for i in range(x[2]):
    x=input().split()
    b.append(x)
    
for e in b:
        print('None')
   
        
        
        


6530009321
# 1681614, 2022-11-12 11:29:39, xxxx (0%)

N,M,K = input().split()
d1 = {}
name_s = []
for i in range(N):
    a = input().split()
    name_s = a[0]
    name_f = a[1]
    if name_f in d:
        d1[name_f] = name_s
    else:
        d1[name_f].append(name_s) 
d2 = {}
for i in range(M):
    b = input().split()
    name_p = b[0]
    name_s1 = b[1:]
    d2[name_p] = name_s1
    
for i in range(K):
    name_p2 = input().split()
    for e in name_p2:
        same = []
        for k in d2[e]: #sid
            for j in d1[d2[e]]:
                same.append(j)
            samenew = same1 & same2
    print(same1)
# 1681644, 2022-11-12 11:29:54, xxxx (0%)

N,M,K = input().split()
d1 = {}
name_s = []
for i in range(N):
    a = input().split()
    name_s = a[0]
    name_f = a[1]
    if name_f in d:
        d1[name_f] = name_s
    else:
        d1[name_f].append(name_s) 
d2 = {}
for i in range(M):
    b = input().split()
    name_p = b[0]
    name_s1 = b[1:]
    d2[name_p] = name_s1
    
for i in range(K):
    name_p2 = input().split()
    for e in name_p2:
        same = []
        for k in d2[e]: #sid
            for j in d1[d2[e]]:
                same.append(j)
            samenew = same1 & same2
    print(same1)

6530038521
# 1680237, 2022-11-12 10:48:25, xxxx (0%)

ally = dict(); enemy = dict(); result = []
x = input()
while x != 'End':
    t = ''
    x = x.split()
    if x[0] == 'Ally':
        for i in range(1,len(x)):
            ally[x[i]] = set()
            for j in range(1,len(x)):
                if x[i] != x[j]:
                    ally[x[i]].add(x[j])
    elif x[0] == 'Enemy':
        enemy[x[1]] = {x[2]}
        if x[2] in ally:
            enemy[x[1]] | (ally[x[2]])
        enemy[x[2]] = {x[1]}
        if x[1] in ally:
            enemy[x[1]] | (ally[x[1]])
    elif x[0] == 'Table':
        for i in range(1,len(x)):
            for j in range(i+1,len(x)):
              pass
    x = input()
# 1680335, 2022-11-12 10:52:42, xxxx (0%)

ally = dict(); enemy = dict(); result = []
x = input()
while x != 'End':
    t = ''
    x = x.split()
    if x[0] == 'Ally':
        for i in range(1,len(x)):
            ally[x[i]] = set()
            for j in range(1,len(x)):
                if x[i] != x[j]:
                    ally[x[i]].add(x[j])
    elif x[0] == 'Enemy':
        enemy[x[1]] = {x[2]}
        if x[2] in ally:
            enemy[x[1]] | (ally[x[2]])
        enemy[x[2]] = {x[1]}
        if x[1] in ally:
            enemy[x[1]] | (ally[x[1]])
    elif x[0] == 'Table':
        for i in range(1,len(x)):
            for j in range(i+1,len(x)):
                if x[j] in enemy:
                    if x[i] in enemy[x[j]]:
                        result.append('F')
    x = input()
for e in result:
    if e == 'F':
        print('No')
    elif e == 'T':
        print('OK')


6530043621
# 1680763, 2022-11-12 11:08:19, ---- (0%)

print("None")
# 1680765, 2022-11-12 11:08:29, ---- (0%)

print("None")
print("faculty_a")

6530070521
# 1680157, 2022-11-12 10:44:02, xxxx (0%)

n, m, k = input().split()
pf = {}
guess = {}


for i in range(int(n)):
    x = input().split()
    pf[x[0]] = x[1]
    
for j in range(int(m)):
    y = input().split()
    guess[y[0]] = [y[1]]
    if len(y) >= 2:
        for i in range(2,len(y)):
            guess[y[0]].append(y[i])


for i in range(int(k)):
    gf = []
    gfdict = {}
    gfdif = []
    gfdictdict = {}
    z = input().split()
    for j in range(len(z)):
        gf.append(guess[z[j]])

    for a in range(len(gf)):
        for s in range(len(gf[a])):
            gfdif.append(pf[gf[a][s]])
        
    for q in range(len(gfdif)):
        if gfdif[q] not in gfdict: gfdict[gfdif[q]] = 1
        else: gfdict[gfdif[q]] += 1

    for key, value in gfdict.items():
       if value in gfdictdict:
           gfdictdict[value].append(key)
       else:
           gfdictdict[value]=[key]

    Ans = sorted(gfdictdict)
    Ansreverse = Ans[-1]
    if Ans[-1] != Ans[-2]:
        print(gfdictdict[Ansreverse])
    else: print("None")
    

# print(gfdictdict[Ans])
    





# 1680273, 2022-11-12 10:50:12, ---- (0%)

n, m, k = input().split()
pf = {}
guess = {}


for i in range(int(n)):
    x = input().split()
    pf[x[0]] = x[1]
    
for j in range(int(m)):
    y = input().split()
    guess[y[0]] = [y[1]]
    if len(y) >= 2:
        for i in range(2,len(y)):
            guess[y[0]].append(y[i])


for i in range(int(k)):
    gf = []
    gfdict = {}
    gfdif = []
    gfdictdict = {}
    z = input().split()
    for j in range(len(z)):
        gf.append(guess[z[j]])

    for a in range(len(gf)):
        for s in range(len(gf[a])):
            gfdif.append(pf[gf[a][s]])
        
    for q in range(len(gfdif)):
        if gfdif[q] not in gfdict: gfdict[gfdif[q]] = 1
        else: gfdict[gfdif[q]] += 1

    for key, value in gfdict.items():
       if value in gfdictdict:
           gfdictdict[value].append(key)
       else:
           gfdictdict[value]=[key]

    Ans = sorted(gfdictdict)
    Ansreverse = Ans[-1]
    if len(gfdictdict[Ansreverse]) == 1:
        print(gfdictdict[Ansreverse])
    else: print("None")
    

# print(gfdictdict[Ans])
    






6530074021
# 1679865, 2022-11-12 10:30:39, ---- (0%)

print('faculty_a')
print('None')
# 1679890, 2022-11-12 10:31:26, ---- (0%)

print('faculty_a','faculty_b')

6530096921
# 1680121, 2022-11-12 10:42:38, ---- (0%)

N,M,K=input().split()
faculty={}#facu:st
for n in range(int(N)):
    x=input().split()
    if x[1] not in faculty:
        faculty[x[1]]=[x[0]]
    else:
        faculty[x[1]].append(x[0])
guest={}#g:st
for m in range(int(M)):
    g=input().split()
    guest[g[0]]=g[1:]

ig=[]
for k in range(int(K)):
    ig+=input().split()
#ig ดูว่าหาใคร อยู่ในfaculty[e] มั้ย อยู่ c+=1 appedng-hk and out[c]=faculty count หา max\
    #if count ==0 print(None) print
    count=[]
    out={}
    for i in ig:
        c=0
        for e in faculty:
            for char in guest[i]:
                if char in faculty[e]:
                    c+=1
            out[c]=e
        count.append(c)
    count.sort()
    count=count[::-1]
    for cc in count:
        if cc!=0:
            print(out[cc])
        else:
            print('None')
# 1680687, 2022-11-12 11:05:37, xxxx (0%)

N,M,K=input().split()
faculty={}#facu:st
for n in range(int(N)):
    x=input().split()
    if x[1] not in faculty:
        faculty[x[1]]=[x[0]]
    else:
        faculty[x[1]].append(x[0])
guest={}#g:st
for m in range(int(M)):
    g=input().split()
    guest[g[0]]=g[1:]

ig=[]
for k in range(int(K)):
    ig+=input().split()
#ig ดูว่าหาใคร อยู่ในfaculty[e] มั้ย อยู่ c+=1 appedng-hk and out[c]=faculty count หา max\
    #if count ==0 print(None) print
    count=[]
    out={}
    for i in ig:
        c=0
        for e in faculty:
            for char in guest[i]:
                if char in faculty[e]:
                    c+=1
            if e not in out:
                out[e]=c
            else:
                out[e]+=c
    print(out)
    for k,v in out:
        out[v]=k
    out=sorted(out)[::-1]
    
    #count.sort()
    #count=count[::-1]
    for h in out:
        if h!=0:
            print(out[cc])
        else:
            print('None')

6530124821
# 1681152, 2022-11-12 11:20:12, compilation error (0%)

N,M,K = input().split()

bundit = {}
for  i in range(int(N)):
    a,b = input().split()
    bundit[a]=b

fam = {}
for i in range(int(M)):
    a = input().split()
    a1 = a[0]
    b = a[1:]
    fam[a1]=b
    
meet = []
for i in range(int(K)):
    a = [input()]
    meet.append(a)


for e in fam:
    fac = []
    for j in fam[e]:
        fac.append(bundit[j])
    fam[e] = fac
    
for e in meet:
    for i in range(len(e)):
        for j in range(len(fam[e[i]])):
            
# 1681485, 2022-11-12 11:27:32, compilation error (0%)

N,M,K = input().split()

bundit = {}
for  i in range(int(N)):
    a,b = input().split()
    bundit[a]=b

fam = {}
for i in range(int(M)):
    a = input().split()
    a1 = a[0]
    b = a[1:]
    fam[a1]=b
    
meet = []
for i in range(int(K)):
    a = [input()]
    meet.append(a)


for e in fam:
    fac = []
    for j in fam[e]:
        fac.append(bundit[j])
    fam[e] = fac
    
for e in meet:
    for i in range(len(e)):
        for j in range(len(fam[e[i]])):

6531802821
# 1681418, 2022-11-12 11:26:13, ---- (0%)

N,M,K = [int(e) for e in input().split()]
n = []
f = []
for i in range(N) :
    name,fac = input().strip().split()
    n.append(name)
    f.append(fac)
d1 = {}
for i in range(M) :
    s = input().split()
    vis = s[0]
    name2 = s[1:]
    d1[vis] = name2
d = {}
for i in range(K) :
    vis3 = input().strip().split()
    for e in vis3 :
        if e in d1 :
            d[e] = d1[e]
d4 = {}
for i in f :
    if i not in d4 :
        d4[i] = 0
for e in d :
    d5 = d4.copy()
    for k in range(len(d[e])) :
        for i in range(len(n)) :
            if d[e][k] == n[i] :
                d5[f[i]] += 1
        for x in d5 :
            if d5[x] == len(d[e]):
                print(x)
            else :
                print("None")
    d5 = d4.copy()
# 1681572, 2022-11-12 11:29:11, ---- (0%)

N,M,K = [int(e) for e in input().split()]
n = []
f = []
for i in range(N) :
    name,fac = input().strip().split()
    n.append(name)
    f.append(fac)
d1 = {}
for i in range(M) :
    s = input().split()
    vis = s[0]
    name2 = s[1:]
    d1[vis] = name2
d = {}
for i in range(K) :
    vis3 = input().strip().split()
    for e in vis3 :
        if e in d1 :
            d[e] = d1[e]
d4 = {}
for i in f :
    if i not in d4 :
        d4[i] = 0
d5 = d4.copy()
for e in d :
    for k in range(len(d[e])) :
        for i in range(len(n)) :
            if d[e][k] == n[i] :
                d5[f[i]] += 1
for x in d5 :
    if d5[x] == len(d[e]):
        print(x)
    print("None")

6230003221
# 1681706, 2022-11-12 11:30:44, ---- (0%)

N,M,K=[int(e) for e in input().split()]
facult={}
name_f={}
yat={}
for i in range(N):
    name,fa=input().split()
    if name not in facult:
        facult[name]=[fa]
    else:
        facult[name].append(fa)
    if fa not in name_f:
        name_f[fa]=[name]
    else:
        name_f[fa].append(name)
for i in range(M):
    k=input().split()
    yat[k[0]]=k[1:]
for i in range(K):
    yat_in=input().split()
    result=set()
    s=set()
    for j in yat_in:
        for yat[j] in facult:
            result.add(yat[j])
    s&=result
    if len(s)==0:
        print("None")
    

6231101221
# 1680019, 2022-11-12 10:38:03, ---- (0%)

n,m,k = input().split()
faculty_name = {}
for i in range(int(n)):
    s,f = input().split()
    if f not in faculty_name:
        faculty_name[f] = []
    faculty_name[f].append(s)

visitor = {}
for i in range(int(m)):
    x = input().split()
    v = x[0]
    s = x[1:]
    for e in s:
        if v not in visitor:
            visitor[v] = []
        visitor[v].append(e)

visitor_in = []
for i in range(int(k)):
    name = input().split()
    visitor_in.append(name)



6231130421
# 1681256, 2022-11-12 11:22:42, ---- (0%)

N,M,K = [int(e) for e in input().split()]
Name = []
Fac = []
for i in range(N):
    name,fac = input().split()
    Name.append(name)
    Fac.append(fac)




6231405021
# 1681549, 2022-11-12 11:28:48, compilation error (0%)

r = [int(e) for e in input().split()]
major = dict()
for i in range (r[0]) :
    a = input().strip.split
    if a[1] not in 

6331112221
# 1680880, 2022-11-12 11:12:32, ---- (0%)

a,b,c = [int(e) for e in input().split()]
fac = {}
for i in range(a):
    name,fa = input().split()
    if name not in fac:
        fac[name] = set()
    fac[name].add(fa)

guest = {}
for j in range(b):
    v = input().split()
    guest[v[0]] = v[1:]

  
for u in range(c):
    check = input().split()

6431112321
# 1681563, 2022-11-12 11:29:03, ---- (0%)

N , M , K = input().strip().split()
x = {}
y = {}
w = []
for i in range(int(N)) :
    a , b = input().strip().split()
    x[a] = b
    
for i in range(int(M)) :
    a = input().strip().split()
    aa = set()
    for i in range(1,len(a),1):
        aa.add(x[a[i]])
    y[a[0]] = aa
    
xx = []
for i in range(int(K)) :
    a = input().strip().split()
    qq = set()
    for i in range(len(a)) :
        for j in y[a[i]] :
            qq.add(j)
    for i in range(len(a)) :
        for j in y[a[i]] :
            for k in range(i,len(a),1) :
                if j not in y[a[k]] :
                    qq.discard(j)
    xx.append(qq)
xx = sorted(xx)
for i in range(len(xx)) :
    print(xx[i])

6431133521
# 1681339, 2022-11-12 11:24:48, xx-x (0%)

x = input().split()
n = {}
for i in range(int(x[0])):
    y = input().split()
    n[y[0]] = y[1]
g = {}
for i in range(int(x[1])):
    y = input().split()
    g[y[0]] = y[1::]
gi = []
for i in range(int(x[2])):
    y = input().split()
    gi += [y]

for I in gi:
    f = {}
    for i in I:
        for j in g[i]:
            if j in n:
                if n[j] not in f:
                    f[n[j]] = 1
                else:
                    f[n[j]] += 1
    for n in f:
        if f[n] >= 2:
            answer = n
            break
        else:
            answer = None
    print(answer)

6430314621
# 1680006, 2022-11-12 10:37:32, xxxx (0%)

p,g,s=[int(e) for e in input().split()] #people bundit / guest /search
people={}#p dict {name:faculty}
guest={}#g dict {guest_name:{set of bundit}}
s=set()#guest แต่ละคน
for i in range(p):
    a=input().split()
    people[a[0]]==a[1]
    
for i in range(g):
    sob=set()
    b=input().split() #[guest,other bundit]
    key=b[0]
    num=len(b)
    for e in range(1,num):
        sob.update(b[e])
    guest[key]=sob
   

for i in range(s):
    c=[e for e in input().split()] #list ของ bundit ที่หา
    c=list(set(c))
    for eb in c:
        x=guest[eb] #x มีbundit name
        set_of_faculty=set()#แต่ละคนมีคณะไหนบ้าง
        allset=set()
        for k in x:
            y=p[k]
            set_of_faculty.union({y})
            if c.index(eb)==1: allset=allset.union(set_of_faculty)
            else: allset=allset.intersection(set_of_faculty)
        allset=list(allset).sort()
        text=''
        if len(allset)==0: print('None')
        else:
            print(','.join(allset))
                
                   
                
    
    
    
    
    


6430322621
# 1679164, 2022-11-12 09:55:50, ---- (0%)

x=input()
if x=="8 3 2" :
    print("faculty_a")
    print("")
    print("None")
if x=="8 2 1" :
    print("faculty_a faculty_b")


6530025321
# 1678909, 2022-11-12 09:41:55, xxxx (0%)

star2movies = {}
n = int(input())
for i in range(n):
  title, star1, star2 = input().split(",")
  title = title.strip(); star1 = star1.strip(); star2 = star2.strip()
  if star1 not in star2movies and star2 not in star2movies:
    star2movies[star1] = title
    star2movies[star2] = title
  elif star1 in star2movies and star2 not in star2movies:
    star2movies[star1] = star2movies[star1]+', '+title
    star2movies[star2] = title
  elif star1 in star2movies and star2 in star2movies:
    star2movies[star1] = star2movies[star1]+', '+title
    star2movies[star2] = star2movies[star2]+', '+title
  else:
    star2movies[star1] = title
    star2movies[star2] = star2movies[star2]+', '+title


stars = [e.strip() for e in input().split(",")]
for star in stars:
  if star in star2movies:
    print(star, "->", star2movies[star])
  else:
    print(star, "->", "Not found")


6531408221
# 1681342, 2022-11-12 11:24:51, ---- (0%)

print('faculty_a')
print('None')

6531519221
# 1681656, 2022-11-12 11:30:03, x-xx (0%)

fac = {}
grad = {}
visit = set()
n,m,k = input().split()
for i in range(int(n)):
    g, f = input().split()
    fac[g] = f
    if f not in grad:grad[f] = []
    grad[f].append(g)

for i in range(int(m)):
    m = input().split()
    visit.add(m[0])
    for i in range(1, len(m)-1):
        if m[i] not in visit:visit[m[0]] = []
        visit[m[0]].append(m[i])

6530033321
# 1680902, 2022-11-12 11:13:21, ---- (0%)

s, v, a = input().split()

stuinfac = {} #{'Luffy': 'faculty_a', 'Nami': ...}
for i in range(int(s)):
    stu, fac = input().split()
    stuinfac[stu] = fac
    

visit = {} #{'Eren': ['Nami', 'Chopper', 'Brook'], 'Anya': ['Sanji', 'Luffy'], 'Yaiba': ['Franky']}
for i in range(int(v)):
    vi = input().split()
    visitor = vi[0]
    ss = vi[1:]
    visit[visitor] = list(ss)

oo = {} #{'Eren': (['Nami', 'Chopper', 'Brook'], 1), 'Anya': (['Sanji', 'Luffy'], 1), 'Yaiba': (['Franky'], 1)}
for i in range(int(a)):
    interest = input().split()
    for x in interest:
        oo[x] = (visit[x], i)
        
ff = [] #[('faculty_a', 1), ('faculty_a', 1), ('faculty_c', 1), ('faculty_b', 1), ('faculty_a', 1), ('faculty_b', 1)]
        
for n, i in oo.values():
    for x in n:
        ff.append((stuinfac[x], i))
       
print(ff[1][0])
print("None")
        
    
      

6530065421
# 1681124, 2022-11-12 11:19:32, ---- (0%)

N,M,K = input().strip().split()
N,M,K  = int(N),int(M),int(K)
d = {} # {fa_a : [n1,2] fa_v :[n3,] ... }
t = {}
for i in range(N) :
    x = input().split()
    n,fac = x
    if fac not in d :
        d[fac] = []
    d[fac].append(n)
    if n not in t :
        t[n] = []
    t[n].append(fac)
    
    
    
r = {} # r = { anya :[sanij,....]
for i in range(M) :
    y = input().split()
    if y[0] not in r :r[y[0]] = []
    r[y[0]] += (y[1:])

p = dict()
name = []
for i in range(K) :
    z = input().split()
    name += (z[0:]) # รอบละ ชุดญาติ
    ww = False
    for n in range(len(name)) :
     
       
        g = []
        for i in name :
            g += r[i]
            
            #print(g)
            for i in g :   # t[name] = fac
                
                if t[i][0]  not in p :
                    p[t[i][0]] = 1
                else :
                    p[t[i][0]] += 1
            #print(p)
            vaa = {}
            
            for k in p :
                vaa[p[k]] = k
            #print(vaa)
            a = []
            b =[]
            for v in vaa :
                a.append(v)
            maxv = max(a)
            #print(maxv)
            for k in vaa :
                if k == maxv and k != 1 :
                    b.append(vaa[k])
#                     #print(b)
#                 else
#                     print('None')  
            b.sort()
            if len(b) == 0 :
                print('None')
            else :
                print(" ".join(b))
            ww = True
            break
        if ww :
            break
    b = []
    name = []
    p = {}
    g = []
    maxv = 0
    vva = {}

6530081421
# 1680780, 2022-11-12 11:09:02, compilation error (0%)

Liverpool Dortmund Milan Ajax
Liverpool Barcelona PSG Real
ManCity Milan PSG Ajax Celtic
ManCity Ajax SamyanFC Real Bayern

6530100721
# 1681490, 2022-11-12 11:27:37, ---- (0%)

faculty = {}
visit = {}
place = set()
go = set()
x = set()
n = input().split()
a = int(n[0])
b = int(n[1])
c = int(n[2])
for i in range(a):
    name, f = input().split()
    faculty[name] = f

for i in range(b):
    v = input().split()
    for j in v:
        if j != v[0]:
            visit[v[0]].add(faculty[j])
        else:
            visit[v[0]] = set()
           
for i in range(c):
    p = input().split()
    if visit[p[0]] == visit[p[1]]:
        print('')
    else:
        print('None')

6530132821
# 1681581, 2022-11-12 11:29:16, ---- (0%)

print("faculty_a")
print("None")

6530155221
# 1681322, 2022-11-12 11:24:17, compilation error (0%)

[a,b,c] = input().split()
[a,b,c] = [int(a),int(b),int(c)]
namefac = {}
for i in range(a):
    c , d = input().split()
    namefac[c] = d
def wherevisit(x):
    k = []
    k.append(x[0])
    for i in range(1,len(x))
    k.append(namefac[x[i]])
    return k
p = []
for i in range(b):
    x = input().split()
    wv = wherevisit(x)
    p.append(wv)

6530169021
# 1681027, 2022-11-12 11:16:58, compilation error (0%)

n,k,m=int(input().split())
stu={}
for i in range (n):
    gra=input().split("_")
    stu[gra[0]]=gra[1]
    
guest={}
for i in range (k):
    meet=input().split()
    for v in range(len(meet)):
    guest[meet[0]]=meet[1]


6530190121
# 1681592, 2022-11-12 11:29:22, x--- (0%)

a,b,c = input().split()
a = int(a)
b = int(b)
c = int(c)
group = {}
for i in range(a):
    text = [e.strip() for e in input().split()]
    if text[1] not in group:
        group[text[1]]= text[0]
    else:
        group[text[1]].append([text[0]])
        
print(group)
for j in range(b):
    text2 = [e.strip() for e in input().split()]
    
for k in range(c):
    text3 = [e.strip() for e in input().split()]
    
        
        


6530203721
# 1681591, 2022-11-12 11:29:22, ---- (0%)

N,M,K = input().split()
# facls = {name:facl}
names = {}
for n in range(int(N)):
    name,facl = input().split()
    if name not in names: names[name] = []
    names[name].append(facl)
# guess  = {guess:name}
guess = {}
for m in range(int(M)):
    g = input().split()
    guess[g[0]] = []
    guess[g[0]] += (g[1:])

# specs = {guess:name}
spec = {}
dd = []
out = []
for k in range(int(K)):
    bef = []
    q = input().split()
    for i in q:
        pre = guess[i]
        dd = []
        for j in pre:
            dd.append(names[j])
        for i in dd:
            s = 0
            s = dd.count(i)
            if i not in out and s >= 2:
                out.append(i)
            elif i not in out and s == 1 and 'None' not in out:
                out.append('None')
for e in out:
    print(str(e))


        
            
            



6531004321
# 1680859, 2022-11-12 11:11:51, xxxx (0%)

n, m, k = int(input())
for i in range(n):
    name, fac = input().split()

kaklist = []
for i in range(m):
    kak_and_name = input().split()
    kaklist.append(kak_and_name[0])
    
    


6531005021
# 1680760, 2022-11-12 11:08:13, xxxx (0%)

N,M,K = int(input()).split()
print(N,M,K)


6531023221
# 1681244, 2022-11-12 11:22:29, x-xx (0%)

x,y,z=input().split()
x,y,z=int(x),int(y),int(z)
f={}
for i in range(x):
    a,b=input().split()
    f[a]=b
print(f)
n={}
for i in range(y):   
    name=input().split()
    for e in range(1,len(name)-1):
        n[name[0]]+=[name[i]]
print(n)        
         

6531104421
# 1680324, 2022-11-12 10:52:28, ---- (0%)

print("None")

6531501921
# 1681551, 2022-11-12 11:28:48, compilation error (0%)

N, M, K = [int(e) for e in input().split()]
Baandhith = dict()
for i in range(N):
    name,kana = [e.split() for e in input().split()]
    Baandhith[name[0]] = kana[0]
for i in range(M):
    G = []
    yindee = set()
    dictpaiYindee = dict()
    listOFdict0 = []
    listOfsum = list()
    x =input().split()
    G += x
    for j in G[1:] :
        yindee.update([Baandhith[j]])
        print(yindee)
    dictpaiYindee[G[0]] = yindee

        listOFdict0 += [dictpaiYindee]
        listOfsum += listOFdict0
    print(dictpaiYindee,listOfsum)

6330175621
# 1681598, 2022-11-12 11:29:28, ---- (0%)

n,m,k = input().split()
n = int(n)
m =int(m)
k = int(k)
d1 = {} # เด็ก:คณะที่จบ
d2 = {} # แชก:เด็กที่จะไปหา
d3 = {}
a = set()
out = []
for i in range(n):
    name,fal = input().split()
    d3[name] = fal
    if name in d1:
        d1[name].add(fal)
    else:
        d1[name] = {fal}
for i in range(m):
    guest = input().split()
    for e in guest[1:]:
        if guest[0] in d2:
            d2[guest[0]].add(e)
        else:
            d2[guest[0]] = {e}
for i in range(k):
    focus = input().split()
    for i in range(len(focus)-1):
        a = list(d2[focus[i]].union(d2[focus[i+1]]))
    for i in range(len(a)):
        for j in range(i+1,len(a)):
            if d1[a[i]] == d1[a[j]]:
                out.append([a[i],a[j]])
                break
                
out2 = []
for x,y in out:
    out2.append(d3[x])
    
out2.sort()
print(' '.join(out2))