import numpy as np
while True:
try:
#一開始告訴我的
j = int(input()) #有幾個值(不包含標籤)
i = int(input()) #有幾行拿來當判別的值的值
previous_data = []
for _ in range(i):
row_data = input().split(',')
numbers = [float(num) for num in row_data[:j]]
string_value = row_data[-1]
previous_data.append((numbers, string_value))
#我要判斷的
p = int(input()) #拿來判斷是甚麼標籤的行數
new_data = []
for _ in range(p):
row_data = input().split(',')
numbers = [float(num) for num in row_data]
new_data.append(numbers)
#判斷ING
closest_strings = []
for new_row in new_data:
min_distance = float('inf')
closest_string = ""
for previous_row in previous_data:
distance = np.linalg.norm(np.array(new_row) - np.array(previous_row[0])) #計算距離
if distance < min_distance:
min_distance = distance
closest_string = previous_row[1]
closest_strings.append(closest_string)
#輸出結果
for string_value in closest_strings:
print(string_value)
except EOFError:
break
aW1wb3J0IG51bXB5IGFzIG5wIAp3aGlsZSBUcnVlOgogICAgdHJ5OgogICAgICAgICPkuIDplovlp4vlkYroqLTmiJHnmoQKICAgICAgICBqID0gaW50KGlucHV0KCkpICAgICPmnInlub7lgIvlgLwo5LiN5YyF5ZCr5qiZ57GkKQogICAgICAgIGkgPSBpbnQoaW5wdXQoKSkgICAgI+acieW5vuihjOaLv+S+hueVtuWIpOWIpeeahOWAvOeahOWAvAogICAgICAgIHByZXZpb3VzX2RhdGEgPSBbXQogICAgICAgIGZvciBfIGluIHJhbmdlKGkpOgogICAgICAgICAgICByb3dfZGF0YSA9IGlucHV0KCkuc3BsaXQoJywnKQogICAgICAgICAgICBudW1iZXJzID0gW2Zsb2F0KG51bSkgZm9yIG51bSBpbiByb3dfZGF0YVs6al1dCiAgICAgICAgICAgIHN0cmluZ192YWx1ZSA9IHJvd19kYXRhWy0xXQogICAgICAgICAgICBwcmV2aW91c19kYXRhLmFwcGVuZCgobnVtYmVycywgc3RyaW5nX3ZhbHVlKSkKICAgICAgICAgICAgCiAgICAgICAgI+aIkeimgeWIpOaWt+eahAogICAgICAgIHAgPSBpbnQoaW5wdXQoKSkgICAgI+aLv+S+huWIpOaWt+aYr+eUmum6vOaomeexpOeahOihjOaVuAogICAgICAgIG5ld19kYXRhID0gW10KICAgICAgICBmb3IgXyBpbiByYW5nZShwKToKICAgICAgICAgICAgcm93X2RhdGEgPSBpbnB1dCgpLnNwbGl0KCcsJykKICAgICAgICAgICAgbnVtYmVycyA9IFtmbG9hdChudW0pIGZvciBudW0gaW4gcm93X2RhdGFdCiAgICAgICAgICAgIG5ld19kYXRhLmFwcGVuZChudW1iZXJzKQogICAgICAgICAgICAKICAgICAgICAj5Yik5pa3SU5HCiAgICAgICAgY2xvc2VzdF9zdHJpbmdzID0gW10KICAgICAgICBmb3IgbmV3X3JvdyBpbiBuZXdfZGF0YToKICAgICAgICAgICAgbWluX2Rpc3RhbmNlID0gZmxvYXQoJ2luZicpCiAgICAgICAgICAgIGNsb3Nlc3Rfc3RyaW5nID0gIiIKICAgICAgICAgICAgZm9yIHByZXZpb3VzX3JvdyBpbiBwcmV2aW91c19kYXRhOgogICAgICAgICAgICAgICAgZGlzdGFuY2UgPSBucC5saW5hbGcubm9ybShucC5hcnJheShuZXdfcm93KSAtIG5wLmFycmF5KHByZXZpb3VzX3Jvd1swXSkpICPoqIjnrpfot53pm6IKICAgICAgICAgICAgICAgIGlmIGRpc3RhbmNlIDwgbWluX2Rpc3RhbmNlOgogICAgICAgICAgICAgICAgICAgIG1pbl9kaXN0YW5jZSA9IGRpc3RhbmNlCiAgICAgICAgICAgICAgICAgICAgY2xvc2VzdF9zdHJpbmcgPSBwcmV2aW91c19yb3dbMV0KICAgICAgICAgICAgY2xvc2VzdF9zdHJpbmdzLmFwcGVuZChjbG9zZXN0X3N0cmluZykKICAgICAgICAgICAgCiAgICAgICAgI+i8uOWHuue1kOaenAogICAgICAgIGZvciBzdHJpbmdfdmFsdWUgaW4gY2xvc2VzdF9zdHJpbmdzOgogICAgICAgICAgICBwcmludChzdHJpbmdfdmFsdWUpCgogICAgZXhjZXB0IEVPRkVycm9yOgogICAgICAgIGJyZWFr